sqlserver2000中字符串类型的日期如何比较大小
来源:互联网 发布:新加坡经济数据 编辑:程序博客网 时间:2024/04/29 05:44
如果在数据库(sql)中将保存日期的字段的数据类型设置为varchar,而你又需要对这个日期和另外一个日期进行比较,那么该怎么办呢?
第一种方法:
很容易想到,就是纯粹地利用字符串来比较大小,比如有一个字段为vote_time,其数据类型为varchar,要比较这个日期是不是大于某个日期,比如"2006-02-23",那么可以直接写:
where vote_time>'2006-02-23',这中方法很直观,当然也需要在格式上有所规范,比如,如果日期是2006年3月3日,就必须将日期保存为2006-03-03,否则比较的时候容易出错。
第二种方法:使用类型转换函数convert()
1、首先说明不需要类型转换,并可以正确比较的情况
如果只是比较varchar类型的时间值与日期类型的值比较
select * from voter where vote_time>getdate()会自动转换varchar为datetime类型(2009-2-27转换为2009-02-27),并进行比较,所以2009-1-15并为出现在结果集中
第一种情况下,之所以没有正确是因为系统认定'2006-02-23'为字符串,所以进行的比较是按照比较两个字符串的大小进行的,依次按位比较
2、如果是varchar类型的时间值,按照时间先后排序,则需要转换varchar为datetime后再排序
转换前
转换格式前排序时,时间2007-02-28 06:30:000实际比2007-2-27 06:30:000迟,但是却排在了前面。转换后
结果已经是按照实际时间的先后顺序从早到晚排序了
注:插入的varchar时间值必需是合法的(如2009-2-30就是不合法的日期,2月没有30号)否则,转换时会有错误:从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。输入日期的时候,可以选择使用日期控件,这样就不会输入不存在的日期了
- sqlserver2000中字符串类型的日期如何比较大小
- sqlserver2000中字符串类型的日期如何比较大小
- sqlserver2000中字符串类型的日期如何比较大小
- sql server中字符串类型的日期如何比较大小
- sql server2000 中字符串类型的日期如何比较大小
- sql server中字符串类型的日期如何比较大小
- sql server中字符串类型的日期如何比较大小
- 字符串类型的日期如何比较大小
- yyyy-MM-dd类型的日期字符串比较大小
- C#中如何比较2个string类型的日期大小?
- C#中如何比较2个string类型的日期大小?
- js中解析日期类型的数据,并比较大小
- 日期类型大小比较
- String 类型 日期时间大小的比较
- 字符串格式的日期比较大小
- Javascript中实现字符串转日期和比较日期大小
- 在js中如何比较两个时间字符串的大小
- SQL Server 如何比较日期的大小
- 2009年1月——2月,完成了科研管理系统第二版的修订
- 未成年人勿进 谨以献给1980~1990出生的人(一)
- delphi 三层架构简单例子(经测试成功)
- 迷茫
- DOS或命令行下查看进程,结束进程命令
- sqlserver2000中字符串类型的日期如何比较大小
- 在任务栏显示“显示桌面”图标
- Sculpture 一个开源的优秀的代码生成工具(MDA开发模式)
- QCon全球企业开发大会北京站于4月7日举行
- 初学者学习C++的50条忠告
- 开博宣言是空话??
- 计算机专业找工作经验分享
- C++比较经典的书籍
- Linux常用解压命令