易截截图软件、单文件、免安装、纯绿色、仅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函数大全

---返回表达式中指定字符的开始位置
select charindex('c','abcdefg',1)
---两个字符的值之差
select difference('bet','bit')
---字符最左侧指定数目
select left('abcdef',3)
---返回字符数
select len('abcdefg')
--转换为小字符
select lower('ABCDEFG')
--去左空格后
select ltrim('   &nbs ......

SQL round()详解


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

sql权限

sql权限:
创建User:
insert into mysql.user(Host,User,Password)
values("localhost","cordev",password("xasoftorg"));
insert into
mysql.user(Host,User,Password)
values("localhost","corhotfix",password("xasoftorg"));
insert into
mysq ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号