[英]How to display particular range values in varchar column in SQL SERVER 2000
我的表名是'信息'
结构是:
No int,
Name varchar(200),
Date varchar(30)
记录:
No Name Date
=====================================
1 A 25/08/2012
2 B 10/08/2012
3 C 11/08/2012
4 D 01/09/2012
我的问题是我希望在25/08/2012到01/09/2012之间的号码,姓名,日期
我尝试了以下查询,但我无法得到它。
select No,Name,Date
from information
where Date>='25/08/2012' and Date<='01/09/2012'
我不想将日期列(varchar)更改为datetime
请帮我
您可以尝试将varchar转换为datetime:
SELECT No,Name,Date from information
WHERE CONVERT(datetime, Date, 103) >= CONVERT(datetime, '25/08/2012', 103)
AND CONVERT(datetime, Date, 103) <= CONVERT(datetime, '01/09/2012', 103)
如前所述,将列转换为日期时间。 我个人使用一个声明作为其清洁。
select No,Name,Date from information where convert(datetime, Date, 103) between convert(datetime, '25/08/2012', 103) and convert(datetime, '01/09/2012', 103)
根据您的输入参数,您可以预先将它们转换为日期时间(因此您可以在执行之前检查输入的值。
declare @startdate datetime
declare @enddate datetime
set @startdate = convert(datetime, '25/08/2012', 103)
set @enddate = convert(datetime, '01/09/2012', 103)
select No,Name,Date from information where convert(datetime, Date, 103) between @stardate and @enddate
请使用以下查询,您不需要将Date列(varchar)更改为datetime。
select No,Name,Date from information where CONVERT(date,[DATE],103) >= CONVERT(date,'25/08/2012',103) and CONVERT(date,[DATE],103) <= CONVERT(date,'01/09/2012',103)
您需要将VARCHAR
数据类型转换为Date
。 尝试,
SELECT No, Name, [Date]
FROM information
where CAST([Date] AS Date) BETWEEN CAST('2012-08-25' AS DATE) AND
CAST('2012-09-09' AS DATE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.