当前位置: 澳门新濠3559 > 数据库 > 正文

日期部分的参数,最难的任务恐怕是确保所插入

时间:2019-11-07 13:43来源:数据库
GETDATE() GETDATE() 函数从 SQL Server 返回当前的时间和日期。 语法: GETDATE() RETURNS DATETIME SELECT GETDATE();--// 2017-06-20 15:35:27.980 DATEPART()函数用于返回日期/时间的单独部分,比如年、月、日、小

GETDATE()

GETDATE() 函数从 SQL Server 返回当前的时间和日期。

语法:GETDATE()

RETURNS DATETIME

SELECT GETDATE();--// 2017-06-20 15:35:27.980

DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

1.sql常用日期函数

datepart

日期部分的参数

日期部分 datepart 简写
YEAR yy, yyyy
季度 QUARTER qq, q
MONTH mm, m
WEEK wk, ww
星期 WEEKDAY dw, w
年中的日 DAYOFYEAR dy, y
DAY dd, d
小时 HOUR hh
分钟 MINUTE mi, n
SECOND ss, s
毫秒 MILLISECOND ms
微秒 MICROSECOND mcs
纳秒 NANOSECOND ns

语法

DATEPART(datepart,date)

date 参数是合法的日期表达式。datepart 参数可以是下列的值:

yy, yyyy.....

图片 1

参数

 

 

date

表达式.aspx),用于返回 datetime 或 smalldatetime 值,或日期格式的字符串。仅对 1753 年 1 月 1 日后的日期使用 datetime 数据类型。

返回类型

 

 

int

备注

 

 

MONTH 等价于 DATEPART(mm, date)。

请始终将 datetime 值包含在引号中。对于早期日期,可将日期存储为字符数据。

 

图片 2

 

 

cast()

CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。

CAST (expression AS data_type)

参数说明:

expression:任何有效的SQServer表达式。

AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。

data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。

使用CAST函数进行数据类型转换时,在下列情况下能够被接受:

(1)两个表达式的数据类型完全相同。
(2)两个表达式可隐性转换。
(3)必须显式转换数据类型。

.CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。以下例子用于将文本字符串'12'转换为整型:

日期部分的参数,最难的任务恐怕是确保所插入的日期的格式。SELECT CAST('12' AS int)

图片 3

图片 4图片 5

 

 

 

 

 

 convert()  将一种数据类型的表达式转换为另一种数据类型。

CONVERT() 函数是把日期转换为新数据类型的通用函数。

CONVERT() 函数可以用不同的格式显示日期/时间数据。

CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

 style 值:

Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy

 

 

图片 6

 

 

 

 

dateadd()  DATEADD() 函数在日期中添加或减去指定的时间间隔。

DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart 参数可以是下列的值:

datepart 缩写
yy, yyyy
季度 qq, q

 

 

 

图片 7

 

当我们在进行数据处理的时候,常常需要用到日期函数的计算,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。

DATEPART

DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

语法:DATEPART(datepart,date)

datepart日期参数
date参数是合法的日期表达式
RETURNS INT

SELECT GETDATE();--// 2017-06-19 18:06:19.687
SELECT DATEPART(YEAR,GETDATE());--// 2017
SELECT DATEPART(QUARTER,GETDATE());--// 2
SELECT DATEPART(MONTH,GETDATE());--// 6
SELECT DATEPART(WEEK,GETDATE());--// 25
SELECT DATEPART(WEEKDAY,GETDATE());--// 2
SELECT DATEPART(DAYOFYEAR,GETDATE());--// 170
SELECT DATEPART(DAY,GETDATE());--// 19
SELECT DATEPART(HOUR,GETDATE());--// 18
SELECT DATEPART(MINUTE,GETDATE());--// 6
SELECT DATEPART(SECOND,GETDATE());--// 19
SELECT DATEPART(MILLISECOND,GETDATE());--// 687
SELECT DATEPART(MICROSECOND,GETDATE());--// 687000
SELECT DATEPART(NANOSECOND,GETDATE());--// 687000000

1)GETDATE() 函数从 SQL Server 返回当前的时间和日期。SELECT GETDATE() AS CurrentDateTime 上面的时间部分精确到毫秒。

DATEADD

DATEADD() 函数在日期中添加或减去指定的时间间隔。
语法:DATEADD(datepart,number,date)

datepart日期参数
number是间隔数,对于未来的时间,此数是正数,对于过去的时间,此数是负数
date参数是合法的日期表达式
RETURNS DATETIME

SELECT GETDATE();--// 2017-06-20 15:35:27.980
SELECT DATEADD(DAY,1,GETDATE());--// 2017-06-21 15:35:27.980
SELECT DATEADD(DAY,-1,GETDATE());--// 2017-06-19 15:35:27.980

创建日期相关的表

DATEDIFF

DATEDIFF() 函数返回两个日期之间的时间。
语法:DATEDIFF(datepart,startdate,enddate)

datepart日期参数
startdateenddate 是合法的日期表达式
RETURNS INT

SELECT DATEDIFF(DAY,'2017-05-01','2017-06-01');--// 31
SELECT DATEDIFF(DAY,'2017-06-01','2017-05-01');--// -31

CREATE TABLE Orders 
(
OrderId int NOT NULL PRIMARY KEY,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT GETDATE()
)

DATENAME

DATENAME()函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
语法:DATENAME(datepart,date)

datepart日期参数
date参数是合法的日期表达式
RETURNS NVARCHAR

示例见DATEPART

DATENAMEDATEPART的不同
两者的返回值类型不同,DATENAME()返回的是字符串类型(nvarchar),DATEPART()返回的是整数(int)。


 2)DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

YEAR

YEAR()函数用于返回日期的年份。

语法:YEAR(date)

date参数是合法的日期表达式
RETURNS INT
等同于DATEPART(YEAR,date)

SELECT YEAR('2017-06-20');--// 2017
SELECT DATEPART(YEAR,'2017-06-20');--// 2017

DATEPART(datepart,date)

MONTH

MONTH()函数用于返回日期的月份。

语法:MONTH(date)

date参数是合法的日期表达式
RETURNS INT
等同于DATEPART(MONTH,date)

SELECT MONTH('2017-06-20');--// 6
SELECT DATEPART(MONTH,'2017-06-20');--// 6

date 参数是合法的日期表达式。datepart 参数可以是下列的值:

DAY

DAY()函数用于返回日期的日。

语法:DAY(date)

date参数是合法的日期表达式
RETURNS INT
等同于DATEPART(DAY,date)

SELECT DAY('2017-06-20');--// 20
SELECT DATEPART(DAY,'2017-06-20');--// 20

datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

CONVERT

CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。

语法:CONVERT(data_type(length),data_to_be_converted,style)

data_type(length) 规定目标数据类型(带有可选的长度)
data_to_be_converted含有需要转换的值
style 规定日期/时间的输出格式
RETURNS data_type(length)

可以使用的 style 值:

Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130 dd mon yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM
SELECT CONVERT(VARCHAR(100), GETDATE(), 0);--// 06 20 2017  4:27PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 1);--// 06/20/17
SELECT CONVERT(VARCHAR(100), GETDATE(), 2);--// 17.06.20
SELECT CONVERT(VARCHAR(100), GETDATE(), 3);--// 20/06/17
SELECT CONVERT(VARCHAR(100), GETDATE(), 4);--// 20.06.17
SELECT CONVERT(VARCHAR(100), GETDATE(), 5);--// 20-06-17
SELECT CONVERT(VARCHAR(100), GETDATE(), 6);--// 20 06 17
SELECT CONVERT(VARCHAR(100), GETDATE(), 7);--// 06 20, 17
SELECT CONVERT(VARCHAR(100), GETDATE(), 8);--// 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 9);--// 06 20 2017  4:27:36:970PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 10);--// 06-20-17
SELECT CONVERT(VARCHAR(100), GETDATE(), 11);--// 17/06/20
SELECT CONVERT(VARCHAR(100), GETDATE(), 12);--// 170620
SELECT CONVERT(VARCHAR(100), GETDATE(), 13);--// 20 06 2017 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 14);--// 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 20);--// 2017-06-20 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 21);--// 2017-06-20 16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 22);--// 06/20/17  4:27:36 PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 23);--// 2017-06-20
SELECT CONVERT(VARCHAR(100), GETDATE(), 24);--// 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 25);--// 2017-06-20 16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 100);--// 06 20 2017  4:27PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 101);--// 06/20/2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 102);--// 2017.06.20
SELECT CONVERT(VARCHAR(100), GETDATE(), 103);--// 20/06/2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 104);--// 20.06.2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 105);--// 20-06-2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 106);--// 20 06 2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 107);--// 06 20, 2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 108);--// 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 109);--// 06 20 2017  4:27:36:970PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 110);--// 06-20-2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 111);--// 2017/06/20
SELECT CONVERT(VARCHAR(100), GETDATE(), 112);--// 20170620
SELECT CONVERT(VARCHAR(100), GETDATE(), 113);--// 20 06 2017 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 114);--// 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 120);--// 2017-06-20 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 121);--// 2017-06-20 16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 126);--// 2017-06-20T16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 130);--// 26 ????? 1438  4:27:36:970PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 131);--// 26/09/1438  4:27:36:970PM

 3)DATEADD() 函数在日期中添加或减去指定的时间间隔。

DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart 参数可以是下列的值:

datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

 4)DATEDIFF() 函数返回两个日期之间的天数。

语法

DATEDIFF(datepart,startdate,enddate)  startdate 和 enddate 参数是合法的日期表达式。

* datepart* 参数可以是下列的值:

datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

5)

  CONVERT() 函数是把日期转换为新数据类型的通用函数。

  CONVERT() 函数可以用不同的格式显示日期/时间数据。

  CONVERT(data_type(length),data_to_be_converted,style)

 

Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130 dd mon yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM

 

 

 

编辑:数据库 本文来源:日期部分的参数,最难的任务恐怕是确保所插入

关键词: