在sql中比较时间(或日期)的最佳方法?

时间:2012-07-03 13:24:16

标签: sql sql-server sqldatatypes

我需要在我的Sql服务器中进行两次比较,一次在Dates之间,一次在Times之间。我正在使用C#和Sql Server以及Linq-to-sql。我想存储两个时间字段(Enter-Time,Exit-Time)。现在我想得到不同(例如12:30,18:15,差异是5:45)。我应该使用什么数据类型?我和Dates有同样的问题,我希望得到两个日期的差异,但“DateTime”数据类型存储有关时间的冗余数据,我只需要日期。我希望以最简单的方式使用最少的代码。我正在保存这样的“1045”,当我拿到它时,我在中间添加了一个“:”,它变成了“10:45”,这样就有很多问题。

2 个答案:

答案 0 :(得分:3)

如果需要存储日期,可以使用date数据类型。同样,有时候,您可以使用time数据类型。

要计算差异,您可以使用DATEDIFF() sql函数返回两个日期之间的差异:http://msdn.microsoft.com/en-us/library/ms189794.aspx

我建议您不要将数据存储为stringint等。请按原样使用数据类型。

答案 1 :(得分:1)

要存储数据,您可以使用日期类型或时间类型。执行此操作后,可以使用TimeSpan结构(在您的应用程序中)来衡量时间/日期的差异。如果从另一个日期中减去一个日期,那么您将收到一个TimeSpan对象。

var difference = Date1.Subtract(Date2);