关于DateTime类型的SQL LIKE语句

前端之家收集整理的这篇文章主要介绍了关于DateTime类型的SQL LIKE语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在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的所有组件)

您应该尽量避免将数据时间视为具有任何类型的字符串格式.将它们视为字符串是我们遇到的最大的错误来源之一.

猜你在找的MsSQL相关文章