SQL中常用的的时间跟日期函数

来源:互联网 发布:tensorflow komodo 编辑:程序博客网 时间:2024/05/20 10:51
 

GETDATE函数:

用途:前系统日期、时间

举例:select getdate() 

 Dateadd函数:

用途:在向指定日期加上一段时间的基础上,返回新的 datetime值:

举例:向日期加上2天,select dateadd(day,2,'2011-01-15')  --返回:2011-01-17 00:00:00.000

 

 Datediff函数:

用途:返回跨两个指定日期的日期和时间边界数:

举例:select datediff(day,'2008-08-01','2008-08-18')   --返回:17

 

 Datename函数:

用途: 返回代表指定日期的指定日期部分的字符串:

举例: select datename(weekday, '2011-01-27')  --返回:星期四

 

 Datepart函数:

用途: 返回代表指定日期的指定日期部分的整数:

举例: select datepart(month, '2011-01-15')  --返回 1

 

6.day(),month,year()—这个可以跟datepart对照一下

 

select当前日期=convert(varchar(10),getdate(),120),

当前时间=convert(varchar(8),getdate(),114)

 

 

select datename(dw,2011-01-27)

 

select本年第多少周=datename(week,2011-01-27),

今天是周几=datename(weekday,2011-01-27)

*注释:

这里整理了一些SQLserver里面可能经常会用到的日期格式转换方法:

1.Select convert(varchar, getdate(), 120 )

2011-01-27 18:22:22

2.Select convert(varchar(12) , getdate(), 111 )

2011/01/27

3.select convert(varchar(12) , getdate(), 112 )

20110127

4.select convert(varchar(12) , getdate(), 102 )

2011.01.27

5.select convert(varchar(12) , getdate(), 101 )

27/01/2011

6.select convert(varchar(12) , getdate(), 103 )

01/27/2011

7.select convert(varchar(12) , getdate(), 104 )

01.27.2011

8.select convert(varchar(12) , getdate(), 105 )

01-27-2011

9.select convert(varchar(12) , getdate(), 106 )

01 27 2011

10.select convert(varchar(12) , getdate(), 107 )

27 01, 2011

11.select convert(varchar(12) , getdate(), 108 )

18:22:22

以上这些都是一些常用的日期格式转换。

 

在日常的工作中,我们常常会遇到这样一些问题:当空值“NULL”与非空值相加后,得到的确实空值,而不是我们想要的答案。

例如:1

 

last_name

first_name

a

null

 

根据上表,如果select last_name+first_name from table1

那么我们得到的值一定是一个NULL值,而不是我们想要的“a”。

     2

      

 

last_name

first_name

a

 

 

 

而这个表中,如果 select last_name+first_name from table1

当表没有值的时候就可以得到我们想要的结果“a

 

综上所述:

 Null+Null=Null

 Null+””=Null

 

SQLserver中,如果直接使一个空值与字符串相加,即NULL+‘’的结果也会是NULL值,有两种方法使产生的结果为字符串:

 使用:字段名=isnull(字段值,’’)+insull(串联的字符串,’’)

 设置 CONCAT_NULL_YIELDS_NULL

SET CONCAT_NULL_YIELDS_NULLON时,串联空值与字符串将产生NULL结果。例如,SELECTabc+NULL将生产NULL。当SET CONCAT_NULL_YIELDS_NULLOFF时,串联空值与字符串将产生字符串本身(空值作为空字符串处理)。例如 SELECTabc+NULL将生成abc

 将字符串字段的缺省值设为“” 

SD022