不一样的 SQL Server 日期格式化

Intro

最近统计一些数据,需要按天/按小时/按分钟来统计,涉及到一些日期的格式化,网上看了一些文章大部分都是使用 CONVERT 来转换的,SQL Server 从 2012 开始增加了 FORMAT 方法,可以使用 FORMAT 来格式化日期,更标准化,更具可定制性,而且和 C# 里的日期格式化差不多,可以直接把 C# 里日期的格式直接拿过来用

FORMAT 介绍

FORMAT 适用于数字和日期类型数据的格式化,其他数据类型不支持,其他类型数据转换请使用 CONVERTCAST 去转换。

语法

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

  • formatnvarchar 格式模式。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# 里的日期时间格式,数字格式

  1. SELECT FORMAT (getdate(), 'yyyyMMddHHmmss') >> 20190218033523

  2. SELECT FORMAT (getdate(), 'yyyy-MM-dd HH:mm:ss') >> 2019-02-18 03:35:23

  1. DECLARE @d DATETIME = GETDATE();

  2. SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS 'DateTime Result'

  3. ,FORMAT(123456789,'###-##-####') AS 'Custom Number Result';

output:

  1. DateTime Result Custom Number Result

  2. -------------- --------------------

  3. 27/09/2012 123-45-6789

  4. (1 row(s) affected)

Reference

  • https://docs.microsoft.com/en-us/sql/t-sql/functions/format-transact-sql?view=sql-server-2017

  • https://docs.microsoft.com/ZH-CN/sql/t-sql/functions/format-transact-sql?view=sql-server-2017

  • https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/formatting-types

  • https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/

  • https://www.mssqltips.com/sqlservertip/2655/format-sql-server-dates-with-format-function/

  • http://www.cnblogs.com/firstdream/p/8074219.html

不一样的 SQL Server 日期格式化相关推荐

  1. SQL SERVER 日期格式化、日期和字符串转换

    SQL SERVER 日期格式化.日期和字符串转换 sql server 中怎么把字符串转化为日期? 1. convert(datetime,'YYYY-MM-DD HH24:MI:SS') 2. c ...

  2. Sql Server日期格式化

    Sql Server 中一个非常强大的日期格式化函数 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CON ...

  3. SQL SERVER 日期格式化

    0   或   100   (*)     默认值   mon   dd   yyyy   hh:miAM(或   PM)        1   101   美国   mm/dd/yyyy      ...

  4. SQL Server 日期和时间相关的数据类型有两种

    SQL Server 日期和时间相关的数据类型有两种: DateTime和SmallDateTime. DateTime: 需要8个字节,前4个字节用1900年1月1日以后的天数表示日期,后4个字节表 ...

  5. SQL Server日期格式的转换

    SQL Server日期格式的转换 [原创 2007-03-23 09:34:36]     字号: 大 中 小 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd ...

  6. SQL Server日期函数集合

    SQL Server日期函数集合--1:获取系统日期和时间值函数 --getdate() SELECT GETDATE() AS 'today' --getutcdate() SELECT GETUT ...

  7. 学习SQL:SQL Server日期和时间函数

    So far, we haven't talked about SQL Server date and time functions. Today we'll change that. We'll t ...

  8. SQL Server 日期相关

    [置顶] SQL Server 日期相关 标签: sql serversqlserver 日期日期转换日期操作date 2012-06-13 01:25 11002人阅读 评论(12) 收藏 举报   ...

  9. SQL server日期格式转换

    日期格式转换 字符串转日期时间: convert(datetime,'2017-12-12 00:00:01', 20) 日期时间转字符串: Select CONVERT(varchar(100), ...

最新文章

  1. 【连载】高效人士的116个IT秘诀(第2版)——秘诀25快速记录你的工作日志
  2. nodejs笔记-异步编程
  3. C# 读取在存储过程多结果集
  4. 解析全局配置文件的时候,做了什么?
  5. mysql create很多table,SQL CREATE TABLE 语句
  6. 五、Chain链的作用
  7. Js对象如何添加方法、查看Api
  8. mysql无法添加或更新子行_MySQL无法添加或更新子行
  9. readline/readline.h: No such file or directory
  10. python反编译命令_Python 反编译模块dis
  11. Linux服务器自动清理缓存
  12. 挑战华为社招:java工程师都要掌握哪些技术
  13. python立体图形_Python 立体图形的画法(一)
  14. css宋体代码_css 字体颜色(css color)
  15. 晶振PPM,PPB单位换算
  16. 额定功率台式计算机,解决方案:计算机电源分类当前的台式计算机电源的额定功率为200-4...
  17. keil的c语言基础,KeilC单片机C语言应用研究入门基础篇要点S.doc
  18. pycharm python解释器找不到,pycharm找不到解释器怎么办
  19. 365天深度学习训练营-第6周:好莱坞明星识别
  20. 《数据安全法》发布后为什么数据保护官DPO变得炙手可热?

热门文章

  1. head rush ajax chapter4 DOM
  2. vista任务栏透明_增加Windows Vista任务栏预览大小的赏金(付费!)
  3. imdb文件_如何停止IMDB应用程序向您发送通知
  4. 棉花糖多少钱_如何在6.0棉花糖及更高版本中访问Android的正在运行的应用程序列表...
  5. 中输入learn_Scikit-learn新版本发布,一行代码秒升级
  6. 缩点(有向图的强连通分量)学习笔记
  7. 剑指OFFER的跳台阶问题
  8. 使用 Daynamic 动态添加属性
  9. django与easyui使用过程中遇到的问题
  10. c#使用FluentFtp实现一行代码实现ftp上传下载等