假设我的表中有一个SmallDateTime列。如何更新T-SQL中每行的小时数?
答案 0 :(得分:2)
剧本:
UPDATE atable
SET datetimevalue = DATEADD(hour, @hour - DATEPART(hour, datetimevalue),
datetimevalue)
WHERE ...
答案 1 :(得分:0)
UPDATE YourTable SET YourDateColumn = DateAdd(hh, 1, YourDateColumn)
会在每一行的YourDateColumn
中添加1小时的时间值。
有关详细信息,请参阅this page。
答案 2 :(得分:0)
UPDATE YourTableName
SET YourSmallDateTimeColumn = DATEADD(HH, 1, YourSmallDateTimeColumn)
会为您的专栏添加任意小时数。所以,如果你先摆脱时间组件:
SELECT CAST(CONVERT(char(8), YourSmallDateTimeColumn, 112) AS smalldatetime)
并在以后添加小时组件它应该可以工作。
来自here
向日期时间添加或减去小时数 或者smalldatetime值,您将使用 DATEADD日期函数。该 DATEADD日期函数返回一个新的 基于添加的日期时间值 间隔到指定日期。该 DATEADD日期函数的语法是 如下:
DATEADD ( datepart , number, date )
datepart是参数 指定日期的哪一部分 返回一个新值。几个小时,你 可以使用HOUR或HH。号码是 用于增加datepart的值。 date是一个返回a的表达式 datetime或smalldatetime值,或a 日期格式的字符串。
这是一个如何使用的示例 DATEADD日期函数增加或 将日期时间值减少一定的时间 小时数:
SELECT DATEADD(HOUR, -12, GETDATE())AS [TwelveHoursAgo] SELECT DATEADD(HH, 6, GETDATE()) AS [SixHoursLater]