请教一个MS SQL时间段查询问题
时间:2011-12-20
来源:互联网
是字符串类型
想问一下如果想查询 2011年9月1号到2011年10月1号的数据,该如何处理?
Thanks!!!!
作者: beanya 发布时间: 2011-12-20
select * from tb where convert(varhcar(10),日期时间字段,120) between '2011-09-01' and '2011-10-01'
作者: pengxuan 发布时间: 2011-12-20
select * from tb where convert(datetime,dt)>='2011-09-01' and convert(datetime,dt)<'2011-10-02'
作者: qianjin036a 发布时间: 2011-12-20
select * from tb where col >'2011-09-01' and col<'2011-10-01'
--不经转换,来得更快些...
作者: OrchidCat 发布时间: 2011-12-20
另外的问题,因为其他地方用了“日历”选择,日期的形式是2011-9-1,不是2011-09-01
所以查询有问题。
作者: beanya 发布时间: 2011-12-20
select * from tb where convert(varchar(10),时间字段,120) between '2011-09-01' and '2011-10-01'
作者: fredrickhu 发布时间: 2011-12-20
Thanks!
另外的问题,因为其他地方用了“日历”选择,日期的形式是2011-9-1,不是2011-09-01
所以查询有问题。
那需要转换一下。
作者: fredrickhu 发布时间: 2011-12-20
引用 4 楼 beanya 的回复:
Thanks!
另外的问题,因为其他地方用了“日历”选择,日期的形式是2011-9-1,不是2011-09-01
所以查询有问题。
那需要转换一下。
作者: beanya 发布时间: 2011-12-20
Thanks!
另外的问题,因为其他地方用了“日历”选择,日期的形式是2011-9-1,不是2011-09-01
所以查询有问题。
那就用convert转换
SQL code
select convert(varchar(10),cast('2011-9-1' as datetime),120) /* ---------- 2011-09-01 (1 行受影响) */
作者: pengxuan 发布时间: 2011-12-20
declare @s datetime set @s='2011-9-1' select convert(varchar(10),CAST(@s as datetime),120) /*---------- 2011-09-01 (1 行受影响)*/
作者: fredrickhu 发布时间: 2011-12-20
select * from tb where convert(varchar(10),systemtime,120) between convert(varchar(10),cast('2011-9-1' as datetime),120) and convert(varchar(10),cast('2011-10-1' as datetime),120)
能查到18号的,但不能查到7号的数据
但如果
select * from tb where convert(varchar(10),systemtime,120) between '2011-9-1' and '2011-9-9'
就能查到7号的数据
作者: beanya 发布时间: 2011-12-20
能查到18号的,但不能查到7号的
作者: beanya 发布时间: 2011-12-20
作者: beanya 发布时间: 2011-12-20
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28