错误了,日期 型数据的比较

bboos 2005-03-23 12:05:10
1,
declare @Fdate as datetime,@Ldate as datetim
slect * from 表 where 日期 between @Fdate and @Ldate
--有时候就出错,查询不全,不知道怎么回事

2,
输入多条 日期型数据
日期
2005-2-3 01:00
2005-2-3 15:20
2005-2-3 20:00
2005-2-4 18:00
2005-2-4 20:00
----------------------
要查询结果:
2005-2-3
2005-2-4
这个语句怎么写 才比较好呢?
3,
日期型数据处理上老是有点问题,尽管一直用 cast转换。不知道大家是怎么解决的。

...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunshiyu 2005-03-24
  • 打赏
  • 举报
回复
1。查询不全是因为你条件里的 ‘日期’和@Fdate and @Ldate 的格式不一样,前面是‘2005-3-3’
后面的就带时间了‘2005-3-3 19:20’,在判断的时候把@Fdate and @Ldate 的格式后面的时间去掉
2。select distinct(...)from ...也是把日期后面的时间去掉
3。去SQL帮助上查‘日期, 函数’
xluzhong 2005-03-23
  • 打赏
  • 举报
回复
3,
日期型数据处理上老是有点问题,尽管一直用 cast转换。不知道大家是怎么解决的。

-----
用convert,datediff,dateadd,datepart等等
xluzhong 2005-03-23
  • 打赏
  • 举报
回复
2,
输入多条 日期型数据
日期
2005-2-3 01:00
2005-2-3 15:20
2005-2-3 20:00
2005-2-4 18:00
2005-2-4 20:00
----------------------
要查询结果:
2005-2-3
2005-2-4
这个语句怎么写 才比较好呢?

select distinct(convert(char(10),日期,120)) from tablename
xluzhong 2005-03-23
  • 打赏
  • 举报
回复
1,
declare @Fdate as datetime,@Ldate as datetim
slect * from 表 where 日期 between @Fdate and @Ldate
--有时候就出错,查询不全,不知道怎么回事
-----
declare @Fdate as datetime,@Ldate as datetim
slect * from 表 where 日期 between @Fdate and dateadd(d,1,@Ldate)
sensorcsdn 2005-03-23
  • 打赏
  • 举报
回复
declare @Fdate as datetime,@Ldate as datetim
slect * from 表 where
convert(char(10),日期,120) between convert(char(10),@fdate,120) and convert(char(10),@ldate,120)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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