gpt4 book ai didi

日期时间类型的 SQL LIKE 语句

转载 作者:行者123 更新时间:2023-12-04 01:30:43 26 4
gpt4 key购买 nike

你如何执行 LIKE关于 DateTime 列的声明SQL Server 中的数据类型?

如果我运行以下 SQL,它会返回 2009 年的所有日期。

SELECT * FROM MyTable where CheckDate LIKE '%2009%'

但是,如果我想要所有的 10 月、11 月和 12 月日期,我希望能够执行以下操作:
SELECT * FROM MyTable where CheckDate LIKE '%2009-1%'

但这不会给我任何返回!

我为用户提供了一个过滤选项,他们在其中输入日期字符串,并在他们输入时过滤数据。因此,如果他们输入“20”,我想返回日期内所有带有“20”的日期(因此这可能是所有 2012 年的日期或日期值,例如 06/20/1999)

有人可以帮忙吗?

我正在使用 SQL Server 2008。

提前致谢。

最佳答案

您可以使用 DATEPART 函数来提取部分日期。它还应该使您的查询更明确地了解您要实现的目标:

SELECT * FROM MyTable
where DATEPART(year,CheckDate)=2009 and
DATEPART(month,CheckDate) between 10 and 12

(还有专门命名的函数,例如 MONTHYEAR ,但我更喜欢 DATEPART 以保持一致性,因为它可以访问 datetime 的所有组件)

你应该尽量避免去想 datetime s 具有任何类型的字符串格式。将它们视为字符串是我们遇到的最大错误来源之一。

关于日期时间类型的 SQL LIKE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11985536/

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