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)
在 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)