SQL Server日期范围LIKE查询

4
请帮我学习如何在日期范围内插入LIKE %。例如:
SELECT * 
  FROM table 
 WHERE Date BETWEEN '" & startDate & "%'" AND '" & endDate & "%'" 

在这段代码中,我应该在哪里使用 LIKE 才能使数据出现?

例如,如果我设置为以下内容:

 SELECT * 
 FROM table 
 WHERE Date LIKE '" & startDate & "%'" 

正在运作中...LIKE 表示读取 startdate 或 % 中任意一个..对于开始,它将读取 %


我无法确切理解你的意思。你能举个例子说明你想查询什么吗? - mao
如果date是字符串数据类型(VARCHAR/等),那么您可以使用LIKE--否则就不行。 - OMG Ponies
表中的日期字段是datetime类型吗?如果是,您不能使用LIKE操作符。您应该将其转换为varchar类型,例如。 - mao
你正在尝试解决什么业务问题?除非你在日期字段上有时间问题,否则我看不出在日期区间查询中使用百分号的目的。我同意mao的观点,请给出一个有效和无效的示例,这样我们可能可以提供帮助? :D - xQbert
1
我仍然无法理解您想要获得的结果。请提供一些具有确切数据的示例。 - mao
3个回答

6
尝试这个:

试试看:

"Select (listOfFields) 
 FROM TABLE
 where CONVERT(VARCHAR(25), Your_DATE, 126) BETWEEN 'Start_date%' AND 'EndDate%'";

2

尝试像这样做

SELECT * from table 
WHERE CONVERT(VARCHAR, DateField, 120) BETWEEN  '2010%' AND '2012%'

0
如果日期是字符串类型,就不能使用BETWEEN。
如果日期是日期或日期时间类型,则不能使用LIKE。
*实际上,在文本中可能可以使用between,因为b在a和c之间,但它不会返回正确的日期字符串结果。

1
如果日期时间字符串格式为yyyy-mm-dd hh:mm:ss,则它将返回正确的结果。 - mao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接