您的位置:首页 > 数据库

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

2012-02-27 11:44 225 查看
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_NULL为ON时,串联空值与字符串将产生NULL结果。例如,SELECT’abc’+NULL将生产NULL。当SET
CONCAT_NULL_YIELDS_NULL为OFF时,串联空值与字符串将产生字符串本身(空值作为空字符串处理)。例如 SELECT’abc’+NULL将生成abc。

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

SD022
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: