我有一个带有日期时间列的表我希望以hh:mm:ss检索日期,其中小时为12小时。
我尝试了以下内容。
convert(varchar(10), t2.CSM_START_TIME,108),
convert(varchar(2),datepart(hour,t2.CSM_START_TIME))
+':'+convert(varchar(2),datepart(mm,t2.CSM_START_TIME))
+':'+convert(varchar(2), datepart(SECOND,t2.CSM_START_TIME))
as START_TIME
答案 0 :(得分:3)
SELECT LTRIM(RIGHT(CONVERT(CHAR(20),GETDATE(),22),11));
结果:
11:40:15 PM
或者如果你真的不想要AM / PM(我不明白):
SELECT LTRIM(LEFT(RIGHT(CONVERT(CHAR(20), GETDATE(),22),11),8));
结果:
11:40:15
在客户端格式化这一点要好得多。例如,如果您使用的是C#,请查看.Format()
和.ToString()
。不要让SQL Server执行脏表示工作,尤其是当您有much more flexible features in a more powerful language时。
答案 1 :(得分:0)
这让我得到了我想要的东西。
,substring(convert(varchar(40),t2.CSM_START_TIME,109),12,9)+''+ substring(convert(varchar(40),t2.CSM_START_TIME,109),25,2)
答案 2 :(得分:-1)