时间格式,SQL数据库基础

字符串函数:

SQL Server Date 函数

上边的表格列出了 SQL Server 中最重大的内建日期函数:

函数 描述
GETDATE() 返回当前的日期和时间
DATEPART() 返回日期/时间的单独部分
DATEADD() 在日期中添加或减去指定的时间间隔
DATEDIFF() 返回两个日期之间的时间
CONVERT() 用不同的格式显示日期/时间

 

时间格式,SQL数据库基础。(1)、GETDATE() 函数从 SQL Server 重临当前的日子和岁月。

字符串函数:

(1)、GETDATE() 函数从 SQL Server 重回当前的日子和时间。

 997755.com澳门葡京 1

语法

GETDATE()


 997755.com澳门葡京 2

语法

GETDATE()


997755.com澳门葡京 3

实例

下面是 SELECT 语句:

SELECT GETDATE() AS CurrentDateTime

结果如下所示:

CurrentDateTime
2008-11-11 12:45:34.243

(2)、

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

997755.com澳门葡京 4

实例

下面是 SELECT 语句:

SELECT GETDATE() AS CurrentDateTime

结果如下所示:

CurrentDateTime
2008-11-11 12:45:34.243

注释:地点的日子有些精确到皮秒。

(2)、

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

997755.com澳门葡京 5

语法

DATEPART(datepart,date)

date 参数是官方的日期表明式。datepart 参数可以是下列的值:

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

997755.com澳门葡京 6

语法

DATEPART(datepart,date)

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

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

 

实例

如若大家有如下的 “Orders” 表:

OrderId ProductName OrderDate
1 Jarlsberg Cheese 2008-11-11 13:23:44.657

下面是 SELECT 语句:

SELECT DATEPART(yyyy,OrderDate) AS OrderYear, DATEPART(mm,OrderDate) AS
OrderMonth, DATEPART(dd,OrderDate) AS OrderDay, FROM Orders WHERE
OrderId=1

结果如下所示:

OrderYear OrderMonth OrderDay
2008 11 11

(3)、

DATEADD() 函数在日期中足够或减去指定的时间距离。

 

实例

即使大家有如下的 “Orders” 表:

OrderId ProductName OrderDate
1 Jarlsberg Cheese 2008-11-11 13:23:44.657

下面是 SELECT 语句:

SELECT DATEPART(yyyy,OrderDate) AS OrderYear, DATEPART(mm,OrderDate) AS
OrderMonth, DATEPART(dd,OrderDate) AS OrderDay, FROM Orders WHERE
OrderId=1

结果如下所示:

OrderYear OrderMonth OrderDay
2008 11 11

 (3)、DATE_FORMAT() 函数用于以区其他格式呈现日期/时间数额。

date 参数是合法的日期。format 规定日期/时间的出口格式。

可以采用的格式有:

格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时(00-23)
%h 小时(01-12)
%I 小时(01-12)
%i 分钟,数值(00-59)
%j 年的天(001-366)
%k 小时(0-23)
%l 小时(1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时(hh:mm:ss)
%U 周(00-53)星期日是一周的第一天
%u 周(00-53)星期一是一周的第一天
%V 周(01-53)星期日是一周的第一天,与 %X 使用
%v 周(01-53)星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天(0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位

岁月日期函数:

语法

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

光阴日期函数:

实例

上边的台本使用 DATE_FORMAT() 函数来展现分裂的格式。我们利用 NOW()
来取得当前的日子/时间:

DATE_FORMAT(NOW(),’%b %d %Y %h:%i %p’) DATE_FORMAT(NOW(),’%m-%d-%Y’)
DATE_FORMAT(NOW(),’%d %b %y’) DATE_FORMAT(NOW(),’%d %b %Y %T:%f’)

结果如下所示:

Nov 04 2008 11:45 PM 11-04-2008 04 Nov 08 04 Nov 2008 11:45:34:243

(4)DATEADD() 函数在日期中加上或减去指定的光阴间隔。

date 参数是合法的日子表明式。number
是您愿意丰富的距离数;对于未来的岁月,此数是正数,对于过去的小时,此数是负数。

datepart 参数可以是下列的值:

DATEDIFF() 函数再次回到四个日子之间的天数。

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

 

实例

若果大家有如下的 “Orders” 表:

OrderId ProductName OrderDate
1 Jarlsberg Cheese 2008-11-11 13:23:44.657

当今,我们想要向 “OrderDate” 添加 45 天,那样就足以找到付款日期。

咱俩选拔上边的 SELECT 语句:

SELECT OrderId,DATEADD(day,45,OrderDate) AS OrderPayDate FROM Orders

结果:

OrderId OrderPayDate
1 2008-12-26 13:23:44.657

(4)、

DATEDIFF() 函数再次回到三个日子之间的气数。

 

实例

假诺大家有如下的 “Orders” 表:

OrderId ProductName OrderDate
1 Jarlsberg Cheese 2008-11-11 13:23:44.657

近年来,大家想要向 “OrderDate” 添加 45 天,那样就足以找到付款日期。

咱俩选取上边的 SELECT 语句:

SELECT OrderId,DATEADD(day,45,OrderDate) AS OrderPayDate FROM Orders

结果:

 

OrderId OrderPayDate

1

2008-12-26 13:23:44.657

 

(5)DATEDIFF() 函数重回七个日子之间的命局。

 

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

       CONVERT() 函数可以用分化的格式突显日期/时间数额。

SELECT @@DATEFIRST AS ‘1st Day’, DATEPART(dw, GETDATE()) AS ‘Today’

语法

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

SELECT @@DATEFIRST AS ‘1st Day’, DATEPART(dw, GETDATE()) AS ‘Today’

语法

CONVERT(data_type(length),expression,style)

下边的表格浮现了 datetime 或 smalldatetime 转换为字符数据的 style 值:

值 (世纪 yy) 值 (世纪 yyyy) 输入/输出 标准
0 or 100 mon dd yyyy hh:miAM (or PM) Default
1 101 mm/dd/yy USA
2 102 yy.mm.dd ANSI
3 103 dd/mm/yy British/French
4 104 dd.mm.yy German
5 105 dd-mm-yy Italian
6 106 dd mon yy  
7 107 Mon dd, yy  
8 108 hh:mm:ss  
9 or 109 mon dd yyyy hh:mi:ss:mmmAM (or PM) Default+millisec
10 110 mm-dd-yy USA
11 111 yy/mm/dd Japan
12 112 yymmdd ISO
13 or 113 dd mon yyyy hh:mi:ss:mmm (24h)  
14 114 hh:mi:ss:mmm (24h)  
20 or 120 yyyy-mm-dd hh:mi:ss (24h)  
21 or 121 yyyy-mm-dd hh:mi:ss.mmm (24h)  
126 yyyy-mm-ddThh:mi:ss.mmm (no spaces) ISO8601
130 dd mon yyyy hh:mi:ss:mmmAM Hijiri
131 dd/mm/yy hh:mi:ss:mmmAM Hijiri

SELECT GETDATE()

实例

997755.com澳门葡京 ,近年来我们想要获取七个日子之间的天数。

俺们运用上边的 SELECT 语句:

SELECT DATEDIFF(day,’2008-06-05′,’2008-08-05′) AS DiffDate

结果:

DiffDate
61

SELECT GETDATE()

实例

上边的台本使用 CONVERT() 函数来突显分化的格式。我们将采纳 GETDATE()
函数来赢得当前的日期/时间:

CONVERT(VARCHAR(19),GETDATE()) CONVERT(VARCHAR(10),GETDATE(),10)
CONVERT(VARCHAR(10),GETDATE(),110) CONVERT(VARCHAR(11),GETDATE(),6)
CONVERT(VARCHAR(11),GETDATE(),106) CONVERT(VARCHAR(24),GETDATE(),113)

结果如下所示:

Nov 04 2011 11:45 PM 11-04-11 11-04-2011 04 Nov 11 04 Nov 2011 04 Nov
2011 11:45:34:243

 

 

 

 

 

 

 997755.com澳门葡京 7

实例

现在大家想要获取七个日子之间的小运(请小心,第三个日子比第二个日子早,结果将是一个负数)。

我们拔取下边的 SELECT 语句:

SELECT DATEDIFF(day,’2008-08-05′,’2008-06-05′) AS DiffDate

结果:

DiffDate
-61

(5)、

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

CONVERT() 函数可以用不一样的格式突显日期/时间数额。

 997755.com澳门葡京 8

 

语法

CONVERT(data_type(length),expression,style)

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

上边的报表显示了 datetime 或 smalldatetime 转换为字符数据的 style 值:

值 (世纪 yy) 值 (世纪 yyyy) 输入/输出 标准
0 or 100 mon dd yyyy hh:miAM (or PM) Default
1 101 mm/dd/yy USA
2 102 yy.mm.dd ANSI
3 103 dd/mm/yy British/French
4 104 dd.mm.yy German
5 105 dd-mm-yy Italian
6 106 dd mon yy  
7 107 Mon dd, yy  
8 108 hh:mm:ss  
9 or 109 mon dd yyyy hh:mi:ss:mmmAM (or PM) Default+millisec
10 110 mm-dd-yy USA
11 111 yy/mm/dd Japan
12 112 yymmdd ISO
13 or 113 dd mon yyyy hh:mi:ss:mmm (24h)  
14 114 hh:mi:ss:mmm (24h)  
20 or 120 yyyy-mm-dd hh:mi:ss (24h)  
21 or 121 yyyy-mm-dd hh:mi:ss.mmm (24h)  
126 yyyy-mm-ddThh:mi:ss.mmm (no spaces) ISO8601
130 dd mon yyyy hh:mi:ss:mmmAM Hijiri
131 dd/mm/yy hh:mi:ss:mmmAM Hijiri

 

数量转换、函数转换:

实例

下边的本子使用 CONVERT() 函数来显示分歧的格式。大家将运用 GETDATE()
函数来博取当前的日子/时间:

CONVERT(VARCHAR(19),GETDATE()) CONVERT(VARCHAR(10),GETDATE(),10)
CONVERT(VARCHAR(10),GETDATE(),110) CONVERT(VARCHAR(11),GETDATE(),6)
CONVERT(VARCHAR(11),GETDATE(),106) CONVERT(VARCHAR(24),GETDATE(),113)

结果如下所示:

Nov 04 2011 11:45 PM 11-04-11 11-04-2011 04 Nov 11 04 Nov 2011 04 Nov
2011 11:45:34:243

 

数码转换、函数转换:

 997755.com澳门葡京 9

 997755.com澳门葡京 10

 

 

演习:查看名字,生日

操练:查看名字,生日

 997755.com澳门葡京 11

 997755.com澳门葡京 12

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website