使用日期数据类型从 GetDate() 中删除时间信息可以吗?

发布于 2024-11-03 13:26:49 字数 629 浏览 1 评论 0原文

通常我需要从 GETDATE() 中删除时间信息。我需要这个,因为我有一些 DateTime 字段,我知道我只存储日期信息,以便进行可靠的比较(MyDate < GETDATE()),我需要从 GETDATE( ))。当然,我可以在 MyDate 中使用 DATE 数据类型,但这对于新应用程序来说是可以的,而不是对于旧应用程序。

我曾经使用 CAST 来完成此操作,但由于在 SQL Server 2008 中还有 DATE 数据类型,因此它似乎更具可读性。

旧方法

DECLARE @Today DateTime
SET @Today =  (CAST(FLOOR(CAST( GETDATE() AS FLOAT)) AS DATETIME))
select @Today

新方法

DECLARE @TodayDate Date
Set @TodayDate = GETDATE()
select @TodayDate

我可以采用第二种方法还是有任何警告? (当然我只用2008!)

Typically I need to remove time info from GETDATE(). I need this because I have some DateTime fields where I know I am storing only date information so to make reliable comparisons (MyDate < GETDATE()) I need to remove time information from GETDATE()). Of course I could use the DATE datatype in MyDate, but this is ok for new applications, not for legacy ones.

I used to do it with CAST, but since in SQL Server 2008 there is also the DATE datatype it seems more readable.

Old approach

DECLARE @Today DateTime
SET @Today =  (CAST(FLOOR(CAST( GETDATE() AS FLOAT)) AS DATETIME))
select @Today

New approach

DECLARE @TodayDate Date
Set @TodayDate = GETDATE()
select @TodayDate

May I go with the second or is there any caveat? (of coruse I use 2008 only!)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文