您现在的位置: Gufang > 博客 > 学无止境 > 正文
SQL Sever 有关日期的相关函数应用

SQL Server 是Microsoft公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98的膝上型电脑到运行Microsoft Windows2012 的大型多处理器的服务器等多种平台使用。

数据库都可以使用结构化查询语言SQL来进行数据交互与操控,但不同的数据库有着不同的函数来进行操作。今天我们主要介绍SQL Sever 有关日期的相关函数的应用。

(1) SQL sever获取当前日期和时间:getdate()、getutcdate()


(2) 获取年份/月份/日期MySQL


(3) 获取年份/月份/日期SQL sever


(4) 用DateName()获取年、月、日、星期、周数、时、分、秒

DATENAME(datepart,date)

定义:

DATENAME函数返回指定日期的指定部分。

语法:

DATENAME(datepart,date)

select DateName(year,GetDate()) as '年';


select DateName(month,GetDate()) as '月'


select DateName(day,GetDate()) as '日'


select DateName(dw,GetDate()) as '星期'


select DateName(week,GetDate()) as '周数'


select DateName(hour,GetDate()) as '时'


select DateName(minute,GetDate()) as '分'


select DateName(second,GetDate()) as '秒'


(5) DatePart()获取年月日

DATEPART(datepart,date)

定义和用法

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

语法

DATEPART(datepart,date)

select DatePart(YY,GETDATE())

select DatePart(mm,GETDATE())

select DatePart(dd,GETDATE())

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

DATEADD(datepart,number,date)

定义和用法

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

语法

DATEADD(datepart,number,date)

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

Datepart 选项:

datepart缩写
yy, yyyy, year
季度qq, q, quarter
mm, m, month
年中的日dy, y,
dd, d, day
wk, ww, week
星期dw, w, weekend
小时Hh, hour
分钟mi, n, minute
ss, s, second
毫秒ms,
微妙mcs
纳秒ns

select DATEADD(year,2,GETDATE());

select DATEADD(year,-1,GETDATE());

select DATEADD(dy,30,GETDATE());

select DATEADD(dy,-20,GETDATE());

(7) DATEDIFF()函数返回两个指定日期之间间隔的时间

DATEDIFF(datepart,startdate,enddate)

DATEDIFF(datepart,startdate,enddate) 菜鸟学堂

定义和用法

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

语法

DATEDIFF(datepart,startdate,enddate)

startdate 和 enddate 参数是合法的日期表达式。

Datepart 选项:

datepart缩写
yy, yyyy, year
季度qq, q, quarter
mm, m, month
年中的日dy, y,
dd, d, day
wk, ww, week
星期dw, w, weekend
小时Hh, hour
分钟mi, n, minute
ss, s, second
毫秒ms,
微妙mcs
纳秒ns

select DATEDIFF(year,'2022-06-30' ,GETDATE()) as "间隔时间/年";


select DATEDIFF(month,'2022-06-30' ,GETDATE()) as "间隔时间/月";


select DATEDIFF(day,'2022-06-30',GETDATE()) as "间隔时间/天";


select datediff(day,'2022-09-01','2022-10-18') as "间隔时间/天";


(8) 思想上行动上

SELECT CONVERT(VARCHAR(12),GETDATE(),102);

SELECT CONVERT(VARCHAR(16),GETDATE(),121);

SELECT CONVERT(VARCHAR(19),GETDATE(),113);

(9) CONVERT()函数可以用不同的格式去显示日期/时间数据(可以设置具体格式长度)

CONVERT(data_type(length),expression,style)

CONVERT(data_type(length),expression,style) CSDN

定义和用法

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

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

语法

CONVERT(data_type(length),expression,style)

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

Style 选项:


(世纪 yy)

(世纪 yyyy)
输入/输出标准
-0 or 100mon dd yyyy hh:miAM (or PM)Default
1101mm/dd/yyUSA
2102yy.mm.ddANSI
3103dd/mm/yyBritish/French
4104dd.mm.yyGerman
5105dd-mm-yyItalian
6106dd mon yy
7107Mon dd, yy
8108hh:mm:ss
-9 or 109mon dd yyyy hh:mi:ss:mmmAM (or PM)Default+millisec
10110mm-dd-yyUSA
11111yy/mm/ddJapan
12112yymmddISO
-13 or 113dd mon yyyy hh:mi:ss:mmm (24h)
14114hh:mi:ss:mmm (24h)
-20 or 120yyyy-mm-dd hh:mi:ss (24h)
-21 or 121yyyy-mm-dd hh:mi:ss.mmm (24h)
-126yyyy-mm-ddThh:mi:ss.mmm (no spaces)ISO8601
-130dd mon yyyy hh:mi:ss:mmmAMHijiri
-131dd/mm/yy hh:mi:ss:mmmAMHijiri

SELECT CONVERT(VARCHAR(12),GETDATE(),102);


SELECT CONVERT(VARCHAR(16),GETDATE(),121);


SELECT CONVERT(VARCHAR(19),GETDATE(),113);

(10) cast函数用于将某种数据类型转换为另一种数据类型

cast(字段名 as 转换的类型 )

用法:cast(oznum as nzname )

原类型数值 转换的类型

select cast(132.2748 as int);

select cast(152432 as float);

select cast(6162.2638 as char);

select cast('2023-04-18 15:41:25' as char(16));

select cast(GetDate() as datetime2);


SQL sever获取当前日期和时间:getdate()、getutcdate()

  1. 获取年份/月份/日期MySQL

  1. 获取年份/月份/日期SQL sever

  1. 用DateName()获取年、月、日、星期、周数、时、分、秒
    DATENAME(datepart,date)
    定义:
    DATENAME函数返回指定日期的指定部分。
    语法:
    DATENAME(datepart,date)
    selectDateName(year,GetDate()) as '年';


select DateName(month,GetDate()) as '月'


select DateName(day,GetDate()) as '日'


select DateName(dw,GetDate()) as '星期'


select DateName(week,GetDate()) as '周数'


select DateName(hour,GetDate()) as '时'


select DateName(minute,GetDate()) as '分'


select DateName(second,GetDate()) as '秒'

  1. DatePart()获取年月日
    DATEPART(datepart,date)
    定义和用法
    DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
    语法
    DATEPART(datepart,date)
    selectDatePart(YY,GETDATE())


select DatePart(mm,GETDATE())


select DatePart(dd,GETDATE())

  1. DATEADD()函数,在日期中添加或减去指定的时间间隔
    DATEADD(datepart,number,date)
    定义和用法
    DATEADD() 函数在日期中添加或减去指定的时间间隔。
    语法
    DATEADD(datepart,number,date)
    date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
    Datepart 选项:

datepart缩写
yy, yyyy, year
季度qq, q, quarter
mm, m, month
年中的日dy, y,
dd, d, day
wk, ww, week
星期dw, w, weekend
小时Hh, hour
分钟mi, n, minute
ss, s, second
毫秒ms,
微妙mcs
纳秒ns


select DATEADD(year,2,GETDATE());


select DATEADD(year,-1,GETDATE());


select DATEADD(dy,30,GETDATE());


select DATEADD(dy,-20,GETDATE());

  1. DATEDIFF()函数返回两个指定日期之间间隔的时间
    DATEDIFF(datepart,startdate,enddate)
    DATEDIFF(datepart,startdate,enddate) 菜鸟学堂
    定义和用法
    DATEDIFF() 函数返回两个日期之间的时间。
    语法
    DATEDIFF(datepart,startdate,enddate)
    startdate 和 enddate 参数是合法的日期表达式。
    Datepart 选项:

datepart缩写
yy, yyyy, year
季度qq, q, quarter
mm, m, month
年中的日dy, y,
dd, d, day
wk, ww, week
星期dw, w, weekend
小时Hh, hour
分钟mi, n, minute
ss, s, second
毫秒ms,
微妙mcs
纳秒ns


select DATEDIFF(year,'2022-06-30' ,GETDATE()) as "间隔时间/年";


select DATEDIFF(month,'2022-06-30' ,GETDATE()) as "间隔时间/月";


select DATEDIFF(day,'2022-06-30',GETDATE()) as "间隔时间/天";


select datediff(day,'2022-09-01','2022-10-18') as "间隔时间/天";

  1. 思想上行动上
    SELECTCONVERT(VARCHAR(12),GETDATE(),102);
    SELECTCONVERT(VARCHAR(16),GETDATE(),121);
    SELECTCONVERT(VARCHAR(19),GETDATE(),113);

  2. CONVERT()函数可以用不同的格式去显示日期/时间数据(可以设置具体格式长度)
    CONVERT(data_type(length),expression,style)
    CONVERT(data_type(length),expression,style) CSDN
    定义和用法
    CONVERT() 函数是把日期转换为新数据类型的通用函数。
    CONVERT() 函数可以用不同的格式显示日期/时间数据。
    语法
    CONVERT(data_type(length),expression,style)

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

Style 选项:

值(世纪 yy)值(世纪 yyyy)输入/输出标准
-0 or 100mon dd yyyy hh:miAM (or PM)Default
1101mm/dd/yyUSA
2102yy.mm.ddANSI
3103dd/mm/yyBritish/French
4104dd.mm.yyGerman
5105dd-mm-yyItalian
6106dd mon yy
7107Mon dd, yy
8108hh:mm:ss
-9 or 109mon dd yyyy hh:mi:ss:mmmAM (or PM)Default+millisec
10110mm-dd-yyUSA
11111yy/mm/ddJapan
12112yymmddISO
-13 or 113dd mon yyyy hh:mi:ss:mmm (24h)
14114hh:mi:ss:mmm (24h)
-20 or 120yyyy-mm-dd hh:mi:ss (24h)
-21 or 121yyyy-mm-dd hh:mi:ss.mmm (24h)
-126yyyy-mm-ddThh:mi:ss.mmm (no spaces)ISO8601
-130dd mon yyyy hh:mi:ss:mmmAMHijiri
-131dd/mm/yy hh:mi:ss:mmmAMHijiri


SELECT CONVERT(VARCHAR(12),GETDATE(),102);


SELECT CONVERT(VARCHAR(16),GETDATE(),121);


SELECT CONVERT(VARCHAR(19),GETDATE(),113);

  1. cast函数用于将某种数据类型转换为另一种数据类型

cast(字段名 as 转换的类型 )

用法:cast(oznum as nzname )

原类型数值 转换的类型

select cast(132.2748 as int);

select cast(152432 as float);

select cast(6162.2638 as char);

select cast('2023-04-18 15:41:25' as char(16));

select cast(GetDate() as datetime2);


发表评论(0)
姓名 *
电子邮件
QQ
评论内容 *
验证问题 * 江苏省的省会是哪个城市?请填写正确答案
验证码 * 图片看不清?点击重新得到验证码