SQL基础知识V2——常用日期函数

简介: 日期函数是数据库中经常需要使用到的,本期将常用的几个日期函数给小伙伴做详细的介绍。

GETDATE()

GETDATE()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime。返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内。

SELECT GETDATE()

1.jpg

GETUTCDATE()

GETUTCDATE()函数返回当前UTC(世界标准时间)日期值,即格林尼治时间(GMT)

SELECT GETUTCDATE()

2.jpg


YEAR()
YEAR()函数以int数据类型的格式返回特定日期的年度信息。其语法格式为YEAR(date数据)。

SELECT YEAR(GETDATE())

3.jpg


注意:函数之间只要符合语法规范是可以嵌套的。


MONTH()
MONTH()函数以int数据类型的格式返回特定日期的月份信息。其语法格式为MONTH(date数据)。

SELECT MONTH(GETDATE())

4.jpg

DAY()
DAY()函数以int数据类型的格式返回特定日期的天数信息。其语法格式为DAY(date数据)。

SELECT DAY(GETDATE())

5.jpg

DATEPART(dp,d)

DATEPART(dp,d)函数返回指定日期中相应的部分的整数值。
DATEPART语法格式

DATEPART( datepart , date数据 )

datepart取值
年度 YEAR、YYYY、YY

SELECT DATEPART(YEAR,GETDATE())
--    2019

月份 MONTH、MM、M

SELECT DATEPART(MONTH,GETDATE())
--    2

日期 DAY、DD、D

SELECT DATEPART(DAY,GETDATE())
--    14

周 WEEK、WK、WW

SELECT DATEPART(WEEK,GETDATE())
--    7  (一年中的第7周)

每周星期几 WEEKDAY、DW

SELECT DATEPART(WEEKDAY,GETDATE())
--    5  (是从星期日开始计算往后的第几天)

季度 QUARTER、QQ、Q

SELECT DATEPART(QUARTER,GETDATE())
--     1

一年中第几天 DAYOFYEAR、DY、Y

SELECT DATEPART(DAYOFYEAR,GETDATE())
--     45

小时 HOUR、HH

SELECT DATEPART(HOUR,GETDATE())
--     23  (晚上11点还在写公众号的苦逼小编)

分钟 MINUTE、MI、N

SELECT DATEPART(MINUTE,GETDATE())
--     11

秒 SECOND、SS、SS

SELECT DATEPART(SECOND,GETDATE())
--     45

毫秒 MILLISECOND、MS

SELECT DATEPART(MILLISECOND,GETDATE())
--    120


DATENAME(dp,d)
DATENAME(dp,d)函数返回指定日期中相应的部分的字符串,用法与DATEPART类似。

SELECT DATENAME(MONTH,GETDATE())
--    02  
SELECT DATENAME(WEEKDAY,GETDATE())
--    星期四
SELECT DATENAME(DAY,GETDATE())
--    14
SELECT DATENAME(WEEK,GETDATE())
--    7   一年中的第7周
SELECT DATENAME(DAYOFYEAR,GETDATE())
--    45 一年中的第45天


DATEADD(dp,num,d)

DATEADD(dp,num,d)函数用于执行日期的加运算,返回指定日期值加上一个时间段后的新日期。dp指定日期中进行加法运算的部分值,

例如:YEARMONTH,DAY,HOUR,MINUTE,SECOND,MILLISECOND等,num指定与dp相加的值,如果该值为非整数值,将舍弃该值的小数部分,d为执行加法运算的日期。

DATEADD语法格式
dateadd (datepart,numer,date数据)
numer:用于与detepart相加的值。如果指定了非整数值,则将舍弃该值的小数部分。
date数据:一个用于解析为time、date、smalldatetime、datetime、datetime2、或datetimeoffset值的表达式、列表达式、用户定义的变量或字符串文字。
datepart:时间部分

SELECT DATEADD(YEAR,2,GETDATE())
--  2021-02-14 23:17:52.550    (年份往后增加2年)
SELECT DATEADD(MONTH,2,GETDATE())
--  2019-04-14 23:17:52.550    (月份往后增加2个月)
SELECT DATEADD(DAY,2,GETDATE())
--  2019-02-16 23:17:52.550     (日期往后增加2天)
SELECT DATEADD(YEAR,-2,GETDATE())
--  2017-02-14 23:37:09.477     (年份往前减少2年)
SELECT DATEADD(MONTH,-2,GETDATE())
--  2018-12-14 23:37:09.477     (月份往前减少2个月)
SELECT DATEADD(DAY,-2,GETDATE())
--  2019-02-12 23:37:09.477     (日期往前减少2天)


DATEDIFF(dp,stardate,enddate)
datediff函数将两个特定的日期数据相减,得到的结果可以按照detepart指定的格式返回特定的数据。
语法格式
datediff(datepart,startdate,enddate)
执行中将使用enddate减以startdate的值,如果startdate晚于enddate将返回负值。执行结果如果超出整数范围将提示错误。

SELECT DATEDIFF(YEAR,'2018-5-19','2019-2-14')
--   1
SELECT DATEDIFF(YEAR,'2020-5-19','2019-2-14')
--   -1
SELECT DATEDIFF(MONTH,'2018-2-14','2019-8-11')
--   18
SELECT DATEDIFF(MONTH,'2020-2-14','2019-8-11')
--   -6


相关文章
|
2月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
|
2月前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
2月前
|
SQL 数据库 索引
SQL中COUNT函数结合条件使用的技巧与方法
在SQL查询中,COUNT函数是一个非常常用的聚合函数,用于计算表中满足特定条件的记录数
|
2月前
|
SQL 开发框架 .NET
sql server日期时间函数
sql server日期时间函数
40 2
|
2月前
|
SQL 关系型数据库 MySQL
SQL日期函数
SQL日期函数
|
3月前
|
SQL 关系型数据库 C语言
PostgreSQL SQL扩展 ---- C语言函数(三)
可以用C(或者与C兼容,比如C++)语言编写用户自定义函数(User-defined functions)。这些函数被编译到动态可加载目标文件(也称为共享库)中并被守护进程加载到服务中。“C语言函数”与“内部函数”的区别就在于动态加载这个特性,二者的实际编码约定本质上是相同的(因此,标准的内部函数库为用户自定义C语言函数提供了丰富的示例代码)
|
4月前
|
SQL 数据处理 数据库
|
4月前
|
Java 应用服务中间件 Maven
从零到英雄:一步步构建你的首个 JSF 应用程序,揭开 JavaServer Faces 的神秘面纱
【8月更文挑战第31天】JavaServer Faces (JSF) 是一种强大的 Java EE 标准,用于构建企业级 Web 应用。它提供了丰富的组件库和声明式页面描述语言 Facelets,便于开发者快速开发功能完善且易于维护的 Web 应用。本文将指导你从零开始构建一个简单的 JSF 应用,包括环境搭建、依赖配置、Managed Bean 编写及 Facelets 页面设计。
100 0
|
4月前
|
SQL Oracle 关系型数据库
SQL 中的大小写处理函数详解
【8月更文挑战第31天】
154 0
|
4月前
|
SQL 数据采集 数据挖掘
为什么要使用 SQL 函数?详尽分析
【8月更文挑战第31天】
52 0