网中网 发表于 2015-7-4 00:14:07

sql server 中使用日期类型的几点心得

  一、以前,我在比较两个datetime 类型数据A、B是否同年同月同日的方法是:


where year(A) = year(B) AND month (A) = month(B) AND day(A) = day(B)  实际上可以用更简洁的方式实现

where datediff(day,A,B) = 0  同样,要比较A、B是否同年同月的方法是:

where datediff(month,A,B) = 0  关于 datediff 请参阅联机丛书。
  二、在 ms sql server 的日期函数中可以用"0"来代替日期,"0"表示的日期是1900-01-01 00:00:000。
  三、去掉getdate() 函数返回的时、分、秒信息


dateadd(day,datediff(day,0,getdate()),0)  四、显示getdate() 函数返回的时间是星期几

select datename(weekday,getdate())   这个结果与 @@datefirst 的值有关
  五、SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm ,如果我们需要不同的日期格式如:2005/10/27,2005-10-27,
可以通过下面这个函数实现:


select CONVERT(varchar(10) , 时间, 120 )  这里的120,可以用101到114之间的数值代替(108获取的是时间)。当然,在有几种情况下,要将varchar(10)换成varchar(12)才能完整的显示出来。
下面给出几个常用的数值:
120 结果:2005-10-27
102 结果:2005.10.25
111 结果:2005/10/27
101 结果:10/27/2005
112 结果:20051027
页: [1]
查看完整版本: sql server 中使用日期类型的几点心得