【发布时间】:2020-12-25 10:37:48
【问题描述】:
我做了一个显示日期和时间的 SQL 查询,时间分为小时和分钟。
select convert(varchar(10),[Date],23) as [Date],
datepart(hour, [Time])as Hour, datepart(minute, [Time])as Minutes,
FROM [SQLIOT].[dbo].[ZEPB_CaseLog]
表格以 24 小时格式显示小时。 但我想改为 12 小时格式,单个数字带有“0”前缀。
即:01、02、03 等
我想过用case来做:
select convert(varchar(10),[Date],23) as [Date],
case when
datepart(hour, [Time])> 12 then (datepart(hour, [Time])- 12) as Hour
, datepart(minute, [Time])as Minutes,
FROM [SQLIOT].[dbo].[ZEPB_CaseLog]
这样做会给我一个在线语法错误
datepart(hour, [Time])> 12 then (datepart(hour, [Time])- 12) as Hour
--Incorrect syntax near the keyword 'as'.
我对在 SQL 本身中做减法不太熟悉。我还应该添加什么来解决这个问题吗?
【问题讨论】:
-
format([Time],'HH')? -
当涉及到日期时间时,您需要使用相关函数,这些函数都有很好的文档记录 - 如果您确实需要添加/减去小时数,您可以使用
dateadd,但它只是格式化, 使用format。 -
我尝试了你的建议,但 SQL 给了我错误提示
'format' is not a recognized built-in function name. -
SQL Server 2008
-
wooo - 不支持 - 升级时间
标签: sql sql-server sql-server-2008