sql查询一定时间段内的数据

dotrain 2005-07-19 02:52:22
我想查询一定时间段内的数据,例如想查询1996年3月到1997年2月这个期间的数据,数据库有一个datatime类型的字段,请问sql 语句该怎么写,时间的起始值通过文本框输入。
...全文
3100 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dotrain 2005-07-19
  • 打赏
  • 举报
回复
是我高错了vivianfdlpw() 的方法正确的。我把120改成112就错了
dotrain 2005-07-19
  • 打赏
  • 举报
回复
vivianfdlpw() 的方法可以的,但查出的是不包括1997年2月的数据,而是到1997年1月的数据
改成下面的方法,才可以水能解释一下吗
select * from orders where convert(char(7),orderdate,120)>='1996-10'
and convert(char(7),orderdate,120)<='1997-02'
vivianfdlpw 2005-07-19
  • 打赏
  • 举报
回复
--创建测试环境
create table #
(
dt datetime
)
insert #
select '1996-3-1' union
select '1997-2-1' union
select '2005-1-1' union select getdate()

--测试
select * from # where convert(char(7),dt,120) between '1996-03' and '1997-02'

--删除测试环境
drop table #

--结果
/*
dt
------------------------------------------------------
1996-03-01 00:00:00.000
1997-02-01 00:00:00.000

(所影响的行数为 2 行)
*/

dotrain 2005-07-19
  • 打赏
  • 举报
回复
sunqi_790817(奇奇) 的方法不行,月份是不固定的。其他两位的方法试过了不行啊
vivianfdlpw 2005-07-19
  • 打赏
  • 举报
回复
说错了,应该是:
select * from 表 where convert(char(7),日期字段,120) between '1996-03' and '1997-02'
dotrain 2005-07-19
  • 打赏
  • 举报
回复
不行啊,在查询分析器里查出结果是空啊,实际数据是有的啊
sunqi_790817 2005-07-19
  • 打赏
  • 举报
回复
select * from table where rq between '1996-03-01' and '1997-02-28'
vivianfdlpw 2005-07-19
  • 打赏
  • 举报
回复
select * from 表 where convert(char(6),日期字段) between '1996-03' and '1997-02'
filebat 2005-07-19
  • 打赏
  • 举报
回复
declare @startdate datetime, @enddate datetime
select *
from 表名
where 日期字段名>=@startdate and 日期字段名<=@enddate
--注意上面的查询对于日期为null的记录是不显示的.
phantomMan 2005-07-19
  • 打赏
  • 举报
回复
select * from tablename where fields between 1996-3 and 1997-2

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧