如何在SQL SERVER中格式化日期时间

时间:2014-05-23 20:11:17

标签: sql-server datetime sql-server-2012

我正在尝试使用DATE_FORMAT(date,'%y-%m-%d %h:%i:%s %p')将MySQL函数CONVERT()移植到等效的MsSQL 如何在SQL SERVER 2012中格式化等效的日期时间字符串以提供此输出'2014-05-24 01:24:37 AM'

1 个答案:

答案 0 :(得分:21)

在SQL Server 2012及更高版本中,您可以使用FORMAT()

SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm:ss tt')

在以前的版本中,您可能需要连接两个或更多不同的日期时间转换以获得所需内容,例如:

SELECT 
    CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23) + ' ' + 
    RIGHT('0' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), 11);

有关所有内置格式样式,请参阅CAST and CONVERT (Transact-SQL)的日期和时间样式部分。


我要记住,除非你有充分的理由,否则我的意思是非常的理由,格式化对于显示数据的技术来说通常更好。