SQL Server 比较日期大小的方法
2013-09-25 00:00
337 查看
在机房收费系统中,有几处这样的情况:
起始日期和终止日期,相信聪明的你肯定可以想象出为什么要有两个日期控件!是的,就是从一张表中查找出在这两个日期范围类的记录!
有的人就说了,这还不简单!
假如我们将第一个控件定义成Begin,第二个控件定义成Over!那么查询语句不就是
这有什么难的!但是,事实并不是这么简单的,如果查询语句像这样写的话,你是肯定查找不出来的,那么我们到底该怎能在SQL Server中来比较两个日期的大小呢?
这里我们就要借用CONVERT()函数了
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
语法:CONVERT(data_type(length),data_to_be_converted,style)
其中,data_type(length)规定目标数据类型(带有可选的长度)data_to_be_converted 含有需要转换的值 style规定日期时间的输出格式
其中,可使用的style值:
例如:
结果如下:
如果你在SQL Server中用到根据日期查找记录的话,如果你用date='2013-09-22' 这样的查询语句的时候,但是你仍然能查出你想要的结果的时候,请记住:这并不是你所想的表中记录的日期等于现在的日期,而是表中日期这个字符串和'2013-09-22'这个字符串相等!
起始日期和终止日期,相信聪明的你肯定可以想象出为什么要有两个日期控件!是的,就是从一张表中查找出在这两个日期范围类的记录!
有的人就说了,这还不简单!
假如我们将第一个控件定义成Begin,第二个控件定义成Over!那么查询语句不就是
"select * from recharge_info where date<'" & over.value & "' and date>'" & begin.value & "'"
这有什么难的!但是,事实并不是这么简单的,如果查询语句像这样写的话,你是肯定查找不出来的,那么我们到底该怎能在SQL Server中来比较两个日期的大小呢?
这里我们就要借用CONVERT()函数了
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
语法:CONVERT(data_type(length),data_to_be_converted,style)
其中,data_type(length)规定目标数据类型(带有可选的长度)data_to_be_converted 含有需要转换的值 style规定日期时间的输出格式
其中,可使用的style值:
例如:
print convert(varchar(19),getdate()) print convert(varchar(10),getdate(),110) print convert(varchar(11),getdate(),106) print convert(varchar(24),getdate(),113)
结果如下:
如果你在SQL Server中用到根据日期查找记录的话,如果你用date='2013-09-22' 这样的查询语句的时候,但是你仍然能查出你想要的结果的时候,请记住:这并不是你所想的表中记录的日期等于现在的日期,而是表中日期这个字符串和'2013-09-22'这个字符串相等!
相关文章推荐
- 如何优化SQL语句的心得浅谈
- 把excel表格里的数据导入sql数据库的两种方法
- oracle中的decode的使用介绍
- oracle中读写blob字段的问题解析
- Oracle case函数使用介绍
- MySQL存储引擎MyISAM与InnoDB的优劣
- Oracle工程硕士——Oracle ERP从业者的新选择
- MS SQL 统计信息浅析上篇
- Using Oracle DBMS_SYSTEM.SET_EV and Oracle DBMS_SYSTEM.READ_EV
- [笔记]--Mysql错误解决办法
- Oracle创建表空间
- 老手是如果教新手写程序的
- MS SQL 统计信息浅析上篇
- SQL 必知必会·笔记<16>使用视图
- ORACLE数据库、表空间、表的容量相关查询--1
- mysql 基本知识
- Oracle 11.2.0.2.0 RAC环境一次内存溢出ORA-04031问题的处理
- mysql 列所有表行数
- MySQL批量SQL插入性能优化
- 打开SQLPLUS中执行计划的各种参数