gpt4 book ai didi

datetime - SQL中日期时间字段中两个日期和时间的区别

转载 作者:行者123 更新时间:2023-12-04 13:52:36 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




8年前关闭。




Possible Duplicate:
How to compare two dates to find time difference in SQL Server 2005, date manipulation



我有两个日期时间字段,应该计算它们之间的时间字段,包括时间字段。

如果它们之间的差异小于 24 小时,则应视为 1 天,24 至 48 小时应视为 2 天。

最佳答案

如果您在谈论 SQL Server,DATEDIFF是你所需要的。

就像是:

SELECT DATEDIFF(d, StartDate, EndDate) FROM tableName

...只需将 StartDate 和 EndDate 替换为您的列名,并将 tableName 替换为实际的表名。
此外,您可以将 'd' 字符替换为其他日期部分,例如,如果您想找到以月、年等为单位的日期差异。

* 更新 *

@sateesh,请尝试遵循此操作。我认为您可能遇到的问题与 SQL 的 DATEDIFF 函数中的舍入有关。解决这个问题的方法是更细化,例如分钟而不是天。请参阅下面的示例代码,并比较输出:
DECLARE @tblDummy TABLE(Value1 SMALLDATETIME, Value2 SMALLDATETIME, [Description] NVARCHAR(50))
INSERT INTO @tblDummy (Value1, Value2, [Description]) VALUES ('2012-01-01 12:00', '2012-01-02 01:00', '13 hours 0 mins')
INSERT INTO @tblDummy (Value1, Value2, [Description]) VALUES ('2012-01-01 12:00', '2012-01-02 11:59', '23 hours 59 mins')
INSERT INTO @tblDummy (Value1, Value2, [Description]) VALUES ('2012-01-01 12:00', '2012-01-02 13:00', '25 hours 0 mins')
INSERT INTO @tblDummy (Value1, Value2, [Description]) VALUES ('2012-01-01 12:00', '2012-01-03 12:00', '48 hours 0 mins')
INSERT INTO @tblDummy (Value1, Value2, [Description]) VALUES ('2012-01-01 12:00', '2012-01-03 12:01', '48 hours 1 min')
INSERT INTO @tblDummy (Value1, Value2, [Description]) VALUES ('2012-01-01 12:00', '2012-01-04 00:00', '60 hours 0 mins')

-- Attempt 1: Standard date diff
SELECT DATEDIFF(d, Value1, Value2) [diff], [Description]
FROM @tblDummy

-- Attempt 2: Date diff taking it down to the minutes level
SELECT CEILING((DATEDIFF(minute, Value1, Value2) / 60.0) / 24.0) [diff], [Description]
FROM @tblDummy

这是输出:

image displaying output from query

我相信尝试 2 可以满足您的需求。如果这对您没有帮助,那么恐怕我只是不明白您的问题。

关于datetime - SQL中日期时间字段中两个日期和时间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12932255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com