MS SQL 服务器相当于 to_char

MS SQL Server equivalent of to_char

在 Redshift 中,我们使用以下命令将日期时间转换为格式化字符串,如下所示 -

to_char(<any datetime column>, 'MM/DD/YYYY HH:MI AM') AS dateTime

我怎样才能在 MS SQL 服务器上实现相同的功能。我使用了 convert 和 cast 但我不能完全按照上面的方式格式化它。我用了

select convert(varchar(20),<any datetime column>,9)

您可以在 Sql Server 2012+ 中使用 format()

select format(getdate(),'MM/dd/yyyy hh:mm tt')

rextester 演示:http://rextester.com/QWPWO57409

returns: 10/31/2017 06:33 PM


在 SQL Server 2012 之前,您可以结合使用 convert() styles 和一些字符串操作来获得类似的东西(无需在小时前引导 0):

select convert(varchar(10),getdate(),101)
  + stuff(right(convert(varchar(20),getdate(),100),8),7,0,' ')

returns: 10/31/2017 6:40 PM

这有帮助吗? Format (Transact-SQL)