SQL Server DATE函数

时间:2020-02-23 14:32:34  来源:igfitidea点击:

在本文中,我们将重点关注整个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