SQL Server DATE函数
在本文中,我们将重点关注整个SQL Server日期函数集。
我们已经了解了DATEDIFF(),DATEPART()和其他函数。
SQL Server日期函数的作用
在处理或者分析从各种来源存储或者收集的某种形式的数据时,最重要的方面是"时间戳",即日期和时间。
SQL Server日期函数是一组函数,可帮助提取,处理和分析记录的或者系统的日期和时间。
了解了SQL Server Date函数的必要性及其存在之后,现在让我们更加深入地了解同一个函数中的各种函数。
提取当前日期和时间
有时,我们需要使用当前日期和时间在数据库和代码中进行操作。
以下功能集使用户能够从系统中提取并显示当前时间戳。
- GETDATE()函数
- CURRENT_TIMESTAMP()函数
- GETUTCDATE()函数
- SYSDATETIME()函数
1. GETDATE()函数
SQL Server GETDATE()函数不接受任何参数,并返回该时间点SQL Server运行的当前日期和时间。
语法:
GETDATE()
例:
select GETDATE();
输出:
2017-06-05T16:52:40.46Z
2. CURRENT_TIMESTAMP()函数
" SQL Server CURRENT_TIMESTAMP()函数"不接受任何参数,并且返回当前时间戳,而不考虑输出的时区。
语法:
CURRENT_TIMESTAMP
例:
select CURRENT_TIMESTAMP as Date;
输出:
Date 2017-06-05T16:54:21.477Z
3. GETUTCDATE()函数
" SQL Server GETUTCDATE()函数"也不接受任何参数,并以整数值返回当前UTC时间戳。
语法:
GETUTCDATE()
例:
select GETUTCDATE();
输出:
2017-06-07T09:34:56.47Z
4. SYSDATETIME()函数
" SQL Server SYSDATETIME()函数"以毫秒为单位,更精确地返回当前日期和时间。
语法:
SYSDATETIME()
例:
select SYSDATETIME();
输出:
2017-06-07 09:37:44.6698077
提取日期和时间的一部分
SQL Server日期函数包括下面的命令/函数列表,这些命令/函数可以帮助我们根据日,月,年,时,分,秒,周,年,纳秒等提取日期或者时间戳的一部分。
- DATENAME()函数
- DAY()函数
- MONTH()函数
- YEAR()函数
- DATEPART()函数
1. DATENAME()函数
SQL Server DATENAME()函数可以帮助提取和显示年,月,日等日期的一部分字符串。
即,DATENAME()函数返回日期的提取部分作为字符值。
语法:
DATENAME(date_portion,input_date)
例:
select DATENAME(year,'2017/06/16');
在上面的示例中,我们提取了"年"值并将其表示为输入日期值中的字符串。
输出:
2017
2. DAY()函数
SQL Server DAY()函数接受日期作为输入,从输入中提取日期值,并以整数形式返回日期值。
语法:
DAY(input_date)
例:
select DAY('2017/06/16');
输出:
16
3. MONTH()函数
SQL Server MONTH()函数接受日期作为输入,从输入中提取月份值并将其作为整数返回。
语法:
MONTH(input_date)
例:
select MONTH('2017/06/16');
输出:
6
4. YEAR()函数
" SQL Server YEAR()函数"接受日期作为输入,从输入中提取年份值,并以整数形式返回年份值。
语法:
YEAR(input_date)
例:
select YEAR('2017/06/16');
输出:
2017
5. DATEPART()函数
SQL Server DATEPART()与" DATENAME()函数"非常相似,只是有一点不同。
DATEPART()函数接受要提取的日期部分和输入日期。
它与DATENAME()函数不同,该函数将提取的日期部分返回为整数值,而DATENAME()函数将提取的日期部分作为字符串返回。
语法:
DATEPART(date_portion,input_date)
例:
select DATEPART(month,'2017/06/16');
输出:
6
操纵日期和时间
SQL Server Date函数包括以下一组函数,即对系统/输入时间戳值进行更改。
- DATEADD()函数
- DATEDIFF()函数
1. DATEADD()函数
SQL Server的DATEADD()函数可帮助我们在传递给它的输入日期的date_portion中添加一个整数值。
有关DATEADD()函数的更多详细信息,请访问SQL Server DATEADD()函数。
语法:
DATEADD(date_portion,value,inout_date)
例:
select DATEADD(day,14,'2017/06/16');
输出:
2017-06-30T00:00:00Z
2. DATEDIFF()函数
SQL Server DATEDIFF()函数用于返回传递给它的两个输入日期值的date_portions之差。
语法:
DATEDIFF(date_portion,input_date1,input_date2)
例:
select DATEDIFF(month,'2017/01/12','2017/06/16');
输出:
5
构造日期和时间
SQL Server日期函数包括一些函数集,这些函数集可帮助我们根据提供给函数的数据以标准格式(yyyy-mm-dd)构造或者构建日期。
- DATEFROMPARTS()函数
- TIMEFROMPARTS()函数
1. DATEFROMPARTS()函数
SQL Server DATEFROMPARTS()函数用于从作为参数提供的各种日期部分构造日期。
语法:
DATEFROMPARTS(year,month,day)
例:
select DATEFROMPARTS(2017, 06, 14);
输出:
2017-06-14
2. TIMEFROMPARTS()函数
" SQL Server TIMEFROMPARTS()函数"根据以下输入参数为标准构建时间:
- 小时
- 分钟
- 秒数
- 分数
- 精度值
注意:精度值永远不能为NULL。
语法:
TIMEFROMPARTS(hour,minute,second,fraction,precision)
例:
SELECT TIMEFROMPARTS(7, 25, 33, 0, 0);
输出:
07:25:33
确认日期和时间
在SQL Server中,日期的有效格式为" yyyy-mm-dd"。
SQL Server ISDATE()函数用于检查输入的日期是否遵循标准格式。
语法:
ISDATE(input_date)
如果日期遵循标准格式,则ISDATE()函数将返回1。
如果日期格式不同,则返回0。
范例1:
SELECT ISDATE('2017-06-14') AS Valid_Date
输出:
Valid_date 1
范例2:
SELECT ISDATE('2017-14-06') AS Valid_Date
输出:
Valid_Date 0