易截截图软件、单文件、免安装、纯绿色、仅160KB

sql server中字符串类型的日期如何比较大小

如果在数据库(sql)中将保存日期的字段的数据类型设置为varchar,而你又需要对这个日期和另外一个日期进行比较,那么该怎么办呢?
1. 第一种方法很容易想到,就是纯粹地利用字符串来比较大小,比如有一个字段为adddate,其数据类型为varchar,要比较这个日期是不是大于某个日期,比如"2006-12-23",那么可以直接写:
where adddate>'2006-12-23',这中方法很直观,当然也需要在格式上有所规范,比如,如果日期是2006年3月3日,就必须将日期保存为2006-03-03,否则比较的时候容易出错。
2. 第二种方法则可以利用sql提供的日期转换函数了。
CONVERT (<data_ type>[ length ], <expression> [, style])
1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。
2)length用于指定数据的长度,缺省值为30。
3)用CONVERT() 函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。
如果用这种方法来判断某一个字段的话,则存入的日期字段的字符串格式只要是能让sql server完成对日期的转换就可以了,而不一定要像第一种方法中的那样严格。
还是说adddate字段,比如要比较它是否大于当前的日期,就可以这样写:
where (CONVERT(varchar, adddate) >= CONVERT(varchar, GETDATE()))


相关文档:

SQL Server日期

---一个月的第一天
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 
--- 本周的星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
---一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
----季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
----上个月的最后一天
......

[SQL]SQL语句大全(分享)

--语 句 功 能
--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DRO ......

SQL round()详解


SQL中round()函数用法
SQL round()详解
round有两个重载,一个有带有两个参数的,一个是带有三个参数的,
每一个参数都相同是要处理的数,
1.带有两个参数.每二个参数是小数点的左边第几位或右边第几位,分别用正负表示.左边为负,右边为负.为四舍五入.
select round(748.585929,-1) 750.000000
select round(748.58592 ......

SQL语句:Group By 语句小结

1. Group By 语句简介:
Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的。恩,以后在命 ......

备份和还原SQL Server及压缩Access数据库

*
 * 功能说明:备份和恢复SQL Server数据库
 * 作者: 刘功勋;
 * 版本:V0.1(C#2.0);时间:2007-1-1
 * 当使用SQL Server时,请引用 COM组件中的,SQLDMO.dll组件
 * 当使用Access中,请浏览添加引用以下两个dll
 *          引用C:/Progra ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号