SQL Date Functions | SQL Time Functions 概述

news2024/11/16 3:32:46

SQL Date Functions | SQL Time Functions

在SQL中,日期和时间函数是用于处理日期和时间数据的重要工具。

SQL Date Functions | SQL Time Functions函数可以从日期时间数据中提取特定的部分、执行日期计算、格式化日期时间等操作。
在这里插入图片描述


No.FunctionDescription描述
1NOW( )Displays the current date and time.显示当前日期和时间。
2CURDATE( )Displays the current date.显示当前日期。
3CURTIME( )Displays the current time.显示当前时间。
4DATE( )Displays the date from the Date/DateTime expression.从日期/日期时间表达式中显示日期。
5EXTRACT( )Displays selected part i.e. date/time.显示所选的日期/时间部分。
6DAY( )Displays the day from the given date.显示给定日期的天数。
7MONTH( )Displays the month from the given date.显示给定日期的月份。
8YEAR( )Displays the year from the given date.显示给定日期的年份。
9DATE_ADD( )Displays date after adding the given interval.显示添加给定间隔后的日期。
10DATE_SUB( )Displays date after subtracting the given interval.显示减去给定间隔后的日期。
11DATEDIFF( )Displays the interval between two dates.显示两个日期之间的间隔。
12DATE_FORMAT( )Displays the date/time data in various formats available.以各种可用的格式显示日期/时间数据。

1. NOW( )

在这里插入图片描述

  • 描述: 返回当前日期和时间。
  • 用法: 在插入或更新记录时,有助于获取当前时间戳。
SELECT NOW();
-- 示例输出:2024-07-25 12:00:00

在 MySQL 中,NOW() 函数可以通过指定不同的参数来控制返回的时间精确度。

  1. NOW(0) - 精确到秒:

    SELECT NOW(0);
    
  2. NOW(1) - 精确到十分之一秒:

  3. NOW(2) - 精确到百分之一秒:

  4. NOW(3) - 精确到毫秒:

    SELECT NOW(3);
    
  5. NOW(4) - 精确到十分之一毫秒:

  6. NOW(5) - 精确到百万分之一秒(微秒):

  7. NOW(6) - 精确到千万分之一秒(微秒):

2. CURDATE( )

在这里插入图片描述

  • 描述: 返回当前日期。
  • 用法: 用于获取当前日期,不包含时间部分。
SELECT CURDATE();
-- 示例输出:2024-07-25

3. CURTIME( )

在这里插入图片描述

  • 描述: 返回当前时间。
  • 用法: 用于获取当前时间,不包含日期部分。
SELECT CURTIME();
-- 示例输出:12:00:00

4. DATE( )

在这里插入图片描述

  • 描述: 从日期或日期时间表达式中提取日期部分。
  • 用法: 从日期时间字段中分离并显示日期部分。
SELECT DATE('2024-07-25 12:00:00');
-- 示例输出:2024-07-25

5. EXTRACT( )

在这里插入图片描述

  • 描述: 从日期或时间中提取特定部分(如年份、月份、日期等)。
  • 用法: 从给定的日期或时间值中提取并返回指定的组件(年、月、日等)。
EXTRACT(unit FROM datetime_expression)
  • unit 是要从日期时间表达式中提取的部分,可以是 YEAR, MONTH, DAY, HOUR, MINUTE, SECOND 等。
  • datetime_expression 是一个日期时间表达式,可以是一个日期、时间或日期时间值。
  1. 提取年份

    SELECT EXTRACT(YEAR FROM '2024-07-25') AS year;
    
  2. 提取月份

    SELECT EXTRACT(MONTH FROM '2024-07-25') AS month;
    
  3. 提取日

    SELECT EXTRACT(DAY FROM '2024-07-25') AS day;
    
  4. 提取小时

    SELECT EXTRACT(HOUR FROM '2024-07-25 12:30:45') AS hour;
    
  5. 提取分钟

    SELECT EXTRACT(MINUTE FROM '2024-07-25 12:30:45') AS minute;
    
  6. 提取秒

    SELECT EXTRACT(SECOND FROM '2024-07-25 12:30:45') AS second;
    

6. DAY( )

  • 描述: 从给定日期中提取天数部分。
    在这里插入图片描述

  • 用法示例:

    SELECT DAY(NOW());
    

    结果可能是当前月份的某一天,例如 25

7. MONTH( )

  • 描述: 从给定日期中提取月份部分。

在这里插入图片描述

  • 用法示例:
    SELECT MONTH(NOW());
    
    结果可能是当前年份的某一月份,例如 7

8. YEAR( )

  • 描述: 从给定日期中提取年份部分。

在这里插入图片描述

  • 用法示例:
    SELECT YEAR(NOW());
    
    结果可能是当前年份的数字,例如 2024

9. DATE_ADD( )

  • 描述: 在给定的日期上添加指定的时间间隔。
    在这里插入图片描述

  • 用法示例:

    SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);
    

    这将返回当前日期加上一个月后的日期。

DATE_ADD() 函数中的 unit 参数指定了时间量的单位,用于指定要添加的时间间隔的类型

  1. MICROSECOND

    • 微秒。示例:INTERVAL 100 MICROSECOND
  2. SECOND

    • 秒。示例:INTERVAL 30 SECOND
  3. MINUTE

    • 分钟。示例:INTERVAL 15 MINUTE
  4. HOUR

    • 小时。示例:INTERVAL 2 HOUR
  5. DAY

    • 天。示例:INTERVAL 7 DAY
  6. WEEK

    • 周。示例:INTERVAL 2 WEEK
  7. MONTH

    • 月。示例:INTERVAL 3 MONTH
  8. QUARTER

    • 季度。示例:INTERVAL 1 QUARTER
  9. YEAR

    • 年。示例:INTERVAL 5 YEAR
  • 添加微秒

    SELECT DATE_ADD('2024-07-25', INTERVAL 100 MICROSECOND) AS new_date;
    
  • 添加分钟

    SELECT DATE_ADD('2024-07-25', INTERVAL 15 MINUTE) AS new_date;
    
  • 添加周

    SELECT DATE_ADD('2024-07-25', INTERVAL 2 WEEK) AS new_date;
    
  • 添加季度

    SELECT DATE_ADD('2024-07-25', INTERVAL 1 QUARTER) AS new_date;
    
  • 添加年

    SELECT DATE_ADD('2024-07-25', INTERVAL 5 YEAR) AS new_date;
    

下面的sub同理。

10. DATE_SUB( )

  • 描述: 在给定的日期上减去指定的时间间隔。

在这里插入图片描述

  • 用法示例:

    SELECT DATE_SUB(NOW(), INTERVAL 1 WEEK);
    

    这将返回当前日期减去一周后的日期。

11. DATEDIFF( )

  • 描述: 计算两个日期之间的天数差。

在这里插入图片描述

DATEDIFF 函数是用于计算两个日期之间的差异(间隔)的函数,返回的是整数值,表示两个日期之间的天数差。

DATEDIFF(date1, date2)

其中:

  • date1date2 是要比较的两个日期或日期时间表达式。

假设有一个表 orders,其中包含 order_date 记录订单的日期时间。

  1. 计算天数差异

    SELECT DATEDIFF('2024-07-25', '2024-07-20') AS day_difference;
    

    返回 5,表示从 2024-07-202024-07-25 之间相差了5天。

  2. 结合表中的日期字段

    SELECT order_id, order_date, DATEDIFF(CURRENT_DATE(), order_date) AS days_since_order
    FROM orders;
    

    计算每个订单的 order_date 到当前日期 (CURRENT_DATE()) 的天数差。

  • DATEDIFF() 返回的是日期的绝对差值,如果 date1date2 之后,则结果是正数;如果 date1date2 之前,则结果是负数。

12. DATE_FORMAT( )

  • 描述: 将日期/时间数据格式化为不同的字符串格式。
    在这里插入图片描述
DATE_FORMAT(date, format)

其中:

  • date 是要格式化的日期或日期时间表达式。
  • format 是用于指定输出格式的字符串。

常见的格式化选项,用于构建 format 字符串:

  • %Y: 四位数年份(例如:2024)
  • %y: 两位数年份(例如:24)
  • %m: 月份(01 到 12)
  • %d: 月份中的天数(01 到 31)
  • %H: 小时(00 到 23)
  • %h: 小时(01 到 12)
  • %i: 分钟(00 到 59)
  • %s: 秒(00 到 59)
  • %W: 星期全名(例如:Monday)
  • %a: 星期缩写(例如:Mon)
  • %M: 月份全名(例如:July)
  • %b: 月份缩写(例如:Jul)
  • %e: 月份中的天数(1 到 31,没有前导零)
  • %T: 时间(24小时制,例如:13:45:30)
  • %r: 时间(12小时制,例如:01:45:30 PM)

  • 1: 格式化日期

假设有一个表 employees,其中包含 hire_date 字段记录雇佣日期。

SELECT hire_date, DATE_FORMAT(hire_date, '%Y-%m-%d') AS formatted_hire_date
FROM employees;

根据 %Y-%m-%d 格式化为类似 2024-07-25 的形式。

  • 2: 显示月份和年份
SELECT hire_date, DATE_FORMAT(hire_date, '%M %Y') AS formatted_month_year
FROM employees;

hire_date 格式化为类似 July 2024 的形式。

  • 3: 自定义日期格式
SELECT hire_date, DATE_FORMAT(hire_date, 'Joined on %W, %M %e, %Y') AS custom_format
FROM employees;

hire_date 格式化为类似 Joined on Monday, July 25, 2024 的形式。

  • 4: 格式化时间

假设有一个 orders 表,其中包含 order_time 记录下单时间的字段。

SELECT order_time, DATE_FORMAT(order_time, '%H:%i:%s') AS formatted_time
FROM orders;

order_time 根据 %H:%i:%s 格式化为类似 12:30:45 的形式。

  • 5: 使用AM/PM格式
SELECT order_time, DATE_FORMAT(order_time, '%h:%i %p') AS formatted_time_am_pm
FROM orders;

order_time 格式化为类似 12:30 PM 的形式。

  • 6: 结合日期和时间格式化
SELECT order_datetime, DATE_FORMAT(order_datetime, '%Y-%m-%d %H:%i:%s') AS formatted_datetime
FROM orders;

order_datetime 格式化为类似 2024-07-25 12:30:45 的形式。

  • 7: 获取月份和年份的缩写
SELECT hire_date, DATE_FORMAT(hire_date, '%b %Y') AS formatted_month_year_short
FROM employees;

Jul 2024


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sql注入详解【从数据库架构分析】

文章目录 简介数据库的架构sql注入概念正常语句正常回显页面在页面中使用sql语句 跨库查询sql文件读写影响条件复现读写的路径的问题 sql注入请求分类sql注入请求类型sql注入请求方式:sql注入数据请求格式 数据库的增删改查数据库查询数据库添加数据库删除数据库修改…

【TS】TypeScript中的接口(Interface):对象类型的强大工具

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 TypeScript中的接口(Interface):对象类型的强大工具引言1. 接口的基本概念1.1 什…

MybatisPlus核心用法

MybatisPlus核心用法 目录 MybatisPlus核心用法1.使用MybatisPlus的基本步骤:2.MybatisPlus是如何获取实现CRUD的数据库表信息的?3.MybatisPlus的常用注解有哪些?如果表名称和实体类名称不符合约定该怎么做?IdType的常见类型有哪些…

IOS微软语音转文本,lame压缩音频

在IOS开发中,用微软进行语音转文本操作,并将录音文件压缩后返回 项目中遇到了利用微软SDK进行实时录音转文本操作,如果操作失败,那么就利用原始音频文件通过网络请求操作,最终这份文件上传到阿里云保存,考…

监控服务器状态,夜莺( nightingale)方案介绍

前提 选择一台服务器,部署一个监控服务端,然后在各个windows或者linux中部署数据采集节点。 类似如下结构 目前我这边采用的技术是 https://flashcat.cloud/product/nightingale/ Nightingale 的解决方案 1 部署内容 服务端(服务端为 c…

centos7安装思源黑体

centos7安装思源黑体 下载思源字体centos7查看目前字体查看所有字体查看所有中文字体 进入字体目录将新加的字体目录添加到fonts.conf配置文件刷新字体缓存查看效果 下载思源字体 下载地址: https://github.com/adobe-fonts/source-han-sans/releases centos7查看目前字体 查…

【MyBatis】基础操作

准备工作 准备数据库表创建 springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok)application.properties中引入数据库连接信息创建对应的实体类 Emp(实体类属性采用驼峰命名)准备Mapper接口 EmpMappe…

排序系列 之 希尔排序

!!!排序仅针对于数组哦本次排序是按照升序来的哦 介绍 英文名为ShellSort,又称“缩小增量排序”是直接插入排序算法的一种更高效的改进版本希尔排序是把记录按下标的指定步长分组,然后按照每组使用直接插入排序&#…

idea一直update indexing 卡死

打开IDEA存储应用程序的本地数据文件夹,关闭IDEA,删除caches和index文件夹下的文件,重新打开。

数据加密技术在数据安全中起到什么样的作用?

把数据以及一个密钥,通过相关的加密算法,进行一系列的加密算法计算处理,使这个数据变成密文,保护数据的机密性。数据加密技术是一种将原始数据(明文)通过算法转换成只有授权用户才能解读的格式(…

C++客户端Qt开发——系统相关(多媒体音频)

3.多媒体(音频、视频) 播放声音需要引入multimedia模块 使用QSound类 仅支持的音频文件格式为.wav,同样使用qrc文件管理外部的资源 (使用的.wav文件不宜过大,尽量在几秒内,否则会构建时间过长&#xff…

拓维思树障分析Tovos PowerLine 4.0.19 航线规划Tovos SmartPlan 2.0.0 下载License电力应用软件使用

Tovos PowerLine 是功能强大的输电线路智能巡检系统!这是一个专业且智能的软件,能够更准确的进行巡检和对线路设备进行精确的测量,通过获取高精度的点云来获取精准的三维路线的地形地貌、设备设施、途径的各种物体等来精确您的三维空间信息和…

三子棋小程序

一.自定义头文件(game.h) 放入源文件需要用到的标准库头文件和函数的声明 ROW 和COL为棋盘的行和列&#xff0c;三子棋嘛&#xff0c;肯定为3啦 #pragma once #include<stdio.h> #include<String.h> #include<stdlib.h> #include<time.h> #define ROW…

中国少女徐可昕心怀爱豆梦 为实现梦想勇赴韩国

如今MZ世代(MZ世代是‌Millennial世代和‌Z世代的合成词,用来描述1980至2000年间出生的人)小伙伴们追求着怎样的梦想呢?随着韩国K-POP热潮和娱乐产业的发展,越来越多的年轻人希望可以在娱乐圈工作,例如成为爱豆或经理人。通过抖音或YouTube等,可以发现很多才华横溢的年轻人创作…

malloc 对比验证 posix_memalign 的功能

1&#xff0c;函数说明 posix_memalign 是一个 POSIX 标准定义的函数&#xff0c;用于在内存中分配对齐的内存块。这个函数可以确保分配的内存块满足特定的对齐要求&#xff0c;通常用于需要对齐内存访问的情况&#xff0c;比如 SIMD 指令集的使用或者特定硬件要求的内存对齐。…

瑞派明星医生:技术深耕教学指导,燃动当代名校兽医双效技能Buff

名校精进&#xff0c;攻破技术堡垒 从动物保护、环境保护的最初理想&#xff0c;到兽医学专业领域深耕&#xff0c;天津瑞派长江宠物医院的唐玉洁医生正用自己的实际行动展现着当代兽医人才背后的奉献、良知、超越与传承。 享受了东北林业大学带来的短暂而有趣的大学生活&…

聊聊RNN与Attention

前言 Attention Mechanism&#xff0c;称为注意力机制。基于Attention机制&#xff0c;seq2seq可以像我们人类一样&#xff0c;将“注意力”集中在必要的信息上。 Attention的结构 seq2seq存在的问题 seq2seq中使用编码器对时序数据进行编码&#xff0c;然后将编码信息传递…

JS:JavaScript 简介

前言 在当今数字时代&#xff0c;JavaScript已然成为了现代Web开发的基石。从最初作为浏览器中的一个小型脚本语言&#xff0c;到如今成为驱动全球互联网的强大引擎&#xff0c;JavaScript的发展历程本身就是一个令人着迷的故事。 好了开始学习JS吧 1. 如果刚开始了解js&#…

Node.js自动化处理TOML文件

在软件开发过程中&#xff0c;自动化处理配置文件是一种常见的需求。TOML&#xff08;Tom’s Obvious, Minimal Language&#xff09;是一种用于配置文件的简单易读的格式。本文将展示如何使用Node.js和一些流行的库来自动化读取、修改并写入TOML文件。 1. 准备工作 在开始之前…