所以我的数据是1:30 PM.
我想在用户选择时间时拥有数据,我希望它添加 1小时30分钟并将数据设为1:30 PM - 3:00 PM
。我一直在寻找答案并尝试了一些解决方法,但我无法得到它。 BTW我的时间的数据类型是Varchar
,因为当我尝试使用Time数据类型时,我遇到了从C#插入到SQL的一些问题
答案 0 :(得分:2)
使用sql-server 2008进行测试
declare @t varchar(25)
set @t = '1:30 PM'
--conert a varchar to time
select CONVERT(time, @t)
--if you want to add 90 minutes to it
select DATEADD(minute,90,CONVERT(time, @t))
答案 1 :(得分:1)
--this does a few things
-- 1) converts the time stored as a varchar to the time datatype
-- 2) adds 90 minutes
-- 3) converts the time result back to the varchar datatype
select convert(varchar(10), dateadd(mi, 90, convert(time, '1:30 PM')), 100)
--this will show a final result of "3:00PM"
修改强>
以下查询还将返回varchar
,其中包含介于上午/下午之间的空格。
select format(dateadd(mi, 90, convert(datetime, '1:30 PM')), 'h:mm tt')
'h:mm tt'
写有一个“h”,因此它会显示为“3:00 PM”,而不是“03:00 PM”。
使用替换:
这将是我如何使用replace
达到“下午3:00”的目标
select replace(replace(convert(varchar(10), dateadd(mi, 90, convert(time, '1:30 PM')), 100), 'P', ' P'), 'A', ' A')