关于DateTime类型的SQL LIKE语句
发布时间:2020-12-12 08:42:30 所属栏目:MsSql教程 来源:网络整理
导读:如何在SQL Server中的DateTime数据类型列上执行LIKE语句? 如果我运行以下SQL,它将返回2009年所有的日期. SELECT * FROM MyTable where CheckDate LIKE '%2009%' 但是,如果我想要所有的10月,11月和十二月份我期望能够做到以下几点: SELECT * FROM MyTable wh
如何在SQL Server中的DateTime数据类型列上执行LIKE语句?
如果我运行以下SQL,它将返回2009年所有的日期. SELECT * FROM MyTable where CheckDate LIKE '%2009%' 但是,如果我想要所有的10月,11月和十二月份我期望能够做到以下几点: 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 (还有一些具体命名的函数,如MONTH和YEAR,但是我更喜欢DATEPART,因为它可以访问datetime的所有组件) 您应该尽量避免将数据时间视为具有任何类型的字符串格式.将它们视为字符串是我们遇到的最大的错误来源之一. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |