一刀客 发表于 2007-12-17 14:11

如何模糊查询日期年份?

比如我要查询2005年份所有商品的信息,日期的数据类型为datetime,里面有好多像"2005-12-4"这样的日期。列名为:日期
我这样写:
select * from db_GoodsInfo where 日期 like '2005%'
但这样没有任何结果~~
错在哪?

XieLi 发表于 2007-12-17 14:28

select * from db_GoodsInfo where YEAR(日期) like '2005%'

purana 发表于 2007-12-17 14:31

楼上的..你已经用Year取了年份了..那直接=2005就行了.不用like

XieLi 发表于 2007-12-17 14:32

呵呵!谢谢楼上提醒!

purana 发表于 2007-12-17 14:33

select * from db_GoodsInfo where convert(char(4),日期,120) ='2005'
select * from db_GoodsInfo where convert(char(10),日期,120)  like '2005%'
select * from db_GoodsInfo where year(日期) = '2005'
select * from db_GoodsInfo where datepart(year,日期)=2005

一刀客 发表于 2007-12-17 18:17

[em12] 多谢指点

ynqj_hook 发表于 2008-3-1 14:34

不如这样

select * from db_GoodsInfo where 日期 > '2004-12-31' and 日期 < '2006-1-1'
在where语句中使用函数性能降低.

页: [1]

编程论坛