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

Ank*_*kit 10 sql-server datetime sql-server-2012

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

Cᴏʀ*_*ᴏʀʏ 26

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

SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm:ss tt')
Run Code Online (Sandbox Code Playgroud)

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

SELECT 
    CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23) + ' ' + 
    RIGHT('0' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), 11);
Run Code Online (Sandbox Code Playgroud)

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


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