我想用hh:mm am / pm格式显示我的结果但是我的查询仅适用于上午的结果,但不适用于中午12:00和
的时间select
timein, timeout,
SUBSTRING(convert(varchar, timein, 108), 1, 5),
SUBSTRING(convert(varchar, TimeOut, 108), 1, 5)
from
timeinandoutTable
where
progtype = 'cmp'
and TimeIn is not null and TimeOut is not null
结果
Timein TimeOut timeinresult timeoutresult
-----------------------------------------------------------------------
1900-01-01 15:00:00 1900-01-01 16:10:00 15:00 16:10
1900-01-01 10:00:00 1900-01-01 17:00:00 10:00 17:00
1900-01-01 09:30:00 1900-01-01 16:00:00 09:30 16:00
答案 0 :(得分:1)
您必须使用其中一种使用" AM / PM"的样式。你的例子(108)没有。使用类似的东西(样式100,取最后7个字符):
select timein, timeout,
substring(convert(varchar(19), timein, 100), len(convert(varchar(19), timein, 100)) - 6, 7),
substring(convert(varchar(19), timeout, 100), len(convert(varchar(19), timeout, 100)) - 6, 7)
from timeinandoutTable
where progtype= 'cmp' and TimeIn is not null and TimeOut is not null
以下是一个自包含的查询,您可以运行该查询以查看此工作:
select convert(datetime, 'Dec 31 2015 10:25PM', 100) as datetime_value,
substring(convert(varchar(19), 'Dec 31 2015 10:25PM', 100), len(convert(varchar(19), 'Dec 31 2015 10:25PM', 100)) - 6, 7) as my_string_value
datetime_value | my_string_value
2015-12-31 22:25:00.000| 10:25PM