如何在SQL中添加时间?

时间:2016-06-10 04:26:33

标签: sql sql-server tsql

所以我的数据是1:30 PM.我想在用户选择时间时拥有数据,我希望它添加 1小时30分钟并将数据设为1:30 PM - 3:00 PM 。我一直在寻找答案并尝试了一些解决方法,但我无法得到它。 BTW我的时间的数据类型是Varchar,因为当我尝试使用Time数据类型时,我遇到了从C#插入到SQL的一些问题

2 个答案:

答案 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')