sqlserver2000中字符串类型的日期如何比较大小
来源:互联网 发布:域名管理系统 编辑:程序博客网 时间:2024/04/29 05:49
如果在数据库(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 如何比较日期的大小
- 一起做RGB-D SLAM(2)
- linux下的命令积累
- eclipse 报 Unhandled event loop exception no more handles 问题
- 理解反向传播(BackPropagation)算法(之一)
- Android判断是否已经开启开发者调试模式以及引导用户去开启相应设置
- sqlserver2000中字符串类型的日期如何比较大小
- 线段树
- 欢迎使用CSDN-markdown编辑器
- dockerfile安装jekyll
- 05 CSS-浏览器兼容问题小总结(IE6)
- 【安全牛学习笔记】缓冲区溢出
- [LeetCode]149. Max Points on a Line 深入浅出讲解和代码示例
- nginx代理服务器
- 正则判断文本是否是中文