不一样的 SQL Server 日期格式化
不一样的 sql server 日期格式化
intro
最近统计一些数据,需要按天/按小时/按分钟来统计,涉及到一些日期的格式化,网上看了一些文章大部分都是使用 convert
来转换的,sql server 从 2012 开始增加了 format
方法,可以使用 format
来格式化日期,更标准化,更具可定制性,而且和 c# 里的日期格式化差不多,可以直接把 c# 里日期的格式直接拿过来用
format
介绍
format
适用于数字和日期类型数据的格式化,其他数据类型不支持,其他类型数据转换请使用 convert
和 cast
去转换。
语法
format ( value, format [, culture ] )
-
value
支持格式化的数据类型的表达式。
下表列出了 value 参数可接受的数据类型,其中还有相关的 .net framework 映射等效类型。类别 | 类型 | .net 类型
-------------------------------
数字 | bigint | int64
数字 | int | int32
数字 | smallint | int16
数字 | tinyint | byte
数字 | decimal | decimal
数字 | numeric | decimal
数字 | float | double
数字 | real | single
数字 | smallmoney | decimal
数字 | money | decimal
日期和时间 | date | datetime
日期和时间 | time | timespan
日期和时间 | datetime | datetime
日期和时间 | smalldatetime | datetime
日期和时间 | datetime2 | datetime
日期和时间 | datetimeoffset | datetimeoffset format
nvarchar 格式模式。
format 参数必须包含一个有效的 .net framework 格式字符串,要么作为标准格式字符串(例如,“c”或“d”),要么作为日期值和数值的自定义字符模式(例如,“mmmm dd, yyyy (dddd)”)。 不支持组合格式。 有关这些格式模式的完整解释,请查阅有关常规字符串格式、自定义日期和时间格式以及自定义数字格式的 .net framework 。culture
指定区域性的可选 nvarchar 参数。
如果未提供 culture 参数,则使用当前会话的语言。 可以使用 set language 语句隐式或显式设置此语言。 culture 接受 .net framework 支持的任何区域性作为参数;它不局限于 sql server 显式支持的语言。 如果 culture 参数无效,format 将引发错误。
返回值类型是 nvarchar
或者 null
示例
query | sample output
select format (getdate(), 'dd/mm/yyyy ') | 21/03/2018
select format (getdate(), 'dd/mm/yyyy, hh:mm:ss ') | 21/03/2018, 11:36:14
select format (getdate(), 'dddd, mmmm, yyyy') | wednesday, march, 2018
select format (getdate(), 'mmm dd yyyy') | mar 21 2018
select format (getdate(), 'mm.dd.yy') | 03.21.18
select format (getdate(), 'mm-dd-yy') | 03-21-18
select format (getdate(), 'hh:mm:ss tt') | 11:36:14 am
select format (getdate(), 'd','us') | 03/21/2018
和 c# 代码里的格式化格式一致,可以直接使用 c# 里的日期时间格式,数字格式
select format (getdate(), 'yyyymmddhhmmss') >> 20190218033523 select format (getdate(), 'yyyy-mm-dd hh:mm:ss') >> 2019-02-18 03:35:23
declare @d datetime = getdate(); select format( @d, 'dd/mm/yyyy', 'en-us' ) as 'datetime result' ,format(123456789,'###-##-####') as 'custom number result';
output:
datetime result custom number result -------------- -------------------- 27/09/2012 123-45-6789 (1 row(s) affected)
reference
上一篇: H5音乐播放器源码共享
下一篇: 第七课 路径与列表
推荐阅读
-
在SQL Server 2005中创建CLR存储过程的详细介绍
-
SQL Server 2005 创建简单的存储过程--总结分析
-
深入sql server 2005 万能分页存储过程的详解
-
基于Python的SQL Server数据库实现对象同步轻量级
-
深入SQL Server 跨数据库查询的详解
-
使用SQL Server 获取插入记录后的ID(自动编号)
-
SQL SERVER函数之深入表值函数的处理分析
-
SQL Server利用sp_spaceused如何查看表记录存在不准确的情况
-
深入SQL SERVER合并相关操作Union,Except,Intersect的详解
-
Oracle 实现类似SQL Server中自增字段的一个办法