SQL按日期来选择记录(比较日期的大小)
2011-01-14 18:21
501 查看
在数据库操作中,通常需要选择某日期以后的记录,比如选择10年1月到11年2月之间的记录,此时用SQL语句编写时,不能直接用“>、<、=”来选择,因为datetime型数据比较大小时,要先将其转化为varchar型,如果未经过转化,虽然语法不会报错,但得到的并非想要的结果。
详细看如下几条语句:
1、
select * from IS_生产进度表视图1
where 成型日期>‘2011-08-08’
所得到的结果为空,因为成型日期是datetime型,而右边是字符型,无法比较,因此要将其转换
select * from IS_生产进度表视图1
where 成型日期>convert(varchar(10),'2010-09-20',120)
所得结果包括2010-09-20这一天的记录,因为成型日期中的形式是2010-09-20 00:00:00
select * from IS_生产进度表视图1 where convert(varchar(10),成型日期,120)>'2010-09-20'
所得结果不包含2010-09-20,因为成型日期已被转化为varchar类型,形式是2010-09-20,应该用此方法
注意转化后,格式是2010-01-01这种类型,所以写条件时,日期也应写为此格式
详细看如下几条语句:
1、
select * from IS_生产进度表视图1
where 成型日期>‘2011-08-08’
所得到的结果为空,因为成型日期是datetime型,而右边是字符型,无法比较,因此要将其转换
select * from IS_生产进度表视图1
where 成型日期>convert(varchar(10),'2010-09-20',120)
所得结果包括2010-09-20这一天的记录,因为成型日期中的形式是2010-09-20 00:00:00
select * from IS_生产进度表视图1 where convert(varchar(10),成型日期,120)>'2010-09-20'
所得结果不包含2010-09-20,因为成型日期已被转化为varchar类型,形式是2010-09-20,应该用此方法
注意转化后,格式是2010-01-01这种类型,所以写条件时,日期也应写为此格式
相关文章推荐
- Mysql日期类型大小比较---拉取给定时间段的记录
- 关于c# 和 SQL SERVER 2000 日期比较查询的一点点经验,记录一下,免得忘记!
- js 时间日期 校验格式 比较大小等(判断页面选择时间只能在早8点到晚8点之间)
- Mysql日期类型大小比较---拉取给定时间段的记录
- oracle sql日期比较和查看表空间大小
- ExtJs内的Ext.form.Panel中datefield控件选择日期过后的事件监听select以及比较两个时间的大小
- 将SQL2005字符型字段转换成为日期时间型后比较大小的代码
- SQL 比较 两个 日期 (datetime) 的 年 月 大小,比较到年月,不比较日
- Mysql日期类型大小比较---拉取给定时间段的记录
- SQL按日期Datatime来比较大小
- SQL 比较日期类型数据大小
- SQL技巧:SQL Server 比较日期大小的方法
- PostgresSql日期字段比较大小
- SQL按日期Datatime来比较大小
- Mysql日期类型大小比较---拉取给定时间段的记录
- Mysql日期类型大小比较---拉取给定时间段的记录
- Shell比较两个日期的大小
- mysql中日期比较大小的方法
- javascript比较yyyy-mm-dd hh:mm:ss日期时间的大小
- SQL抽取 A表中不含B表中的记录(多列比较)