我有这个查询
select CONVERT(varchar(5), tdate ,108) AS [Time] from table
给了我24小时格式(军事)的时间
我想将其转换为12小时格式,所以我尝试了下面的查询
select SUBSTRING(CONVERT(VARCHAR, tdate, 100),13,2) + ':'
+ SUBSTRING(CONVERT(VARCHAR, tdate, 100),16,2) + ''
+ SUBSTRING(CONVERT(VARCHAR, tdate, 100),18,2) AS T
from table
我得到了12小时格式,但我很好奇是否有更短或更好的方式。有什么帮助吗?
答案 0 :(得分:7)
如果您想转换当前日期时间,例如:
SELECT CONVERT(VARCHAR, getdate(), 100) AS DateTime_In_12h_Format
您可以将所需的列放在查询中(例如示例中的tdate),而不是getdate()。如果你想要12小时的时间而不是日期和时间使用substring / right来分隔它们。看来你已经知道如何=)。
This page列出了每个日期时间转换。如果您需要其他类型的转换,这非常方便。
答案 1 :(得分:6)
这将只返回时间,而不是日期。
SELECT RIGHT(CONVERT(VARCHAR, getdate(), 100), 7) AS time
对于您的表格数据:
select RIGHT(CONVERT(varchar, tdate ,100), 7) AS [Time] from table
答案 2 :(得分:0)
以下代码将仅返回时间为晚上10:30
SELECT FORMAT(CAST(getdate() AS DATETIME),'hh:mm tt') AS [Time]
答案 3 :(得分:0)
获取服务器日期
SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))
或
如果存储在表中
SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), datename, 100), 7))
结果:
11:41 AM
答案 4 :(得分:0)
ifnull(date_format(at.date_time,'%d /%m /%Y'),“”) AS date_time, ifnull(time_format(at.date_time,'%h:%i:%s'),“”) AS date_time
这是sql过程的外观...(用于分隔日期和时间)..不需要特殊的时间/日期列......
注意:如果用H代替h,则会显示“ 24小时制”格式