mysql格式化日期和时间

date_format(datetime,formatting)可以格式日期和时间(例如 YYYY-MM-DD HH:MM:SS)和(HH:MM:SS)
time_format(datetime,formatting)只可以格式时间(HH:MM:SS)


例如date为1996-04-20 11:07:45
time_formet(date,'%r');11:07:45 AM
time_formet(date,'%l:%i %p');11:07 AM
date_format(date,'%M %D,%Y');April 20th,1996

以下说明符可用在 format 字符串中:

说明符

说明

%a

工作日的缩写名称  (Sun..Sat)

%b

月份的缩写名称  (Jan..Dec)

%c

月份,数字形式(0..12)

%D

带有英语后缀的该月日期  (0th, 1st, 2nd, 3rd, ...)

%d

该月日期, 数字形式 (00..31)

%e

该月日期, 数字形式(0..31)

%f

微秒 (000000..999999)

%H

小时(00..23)

%h

小时(01..12)

%I

小时 (01..12)

%i

分钟,数字形式 (00..59)

%j

一年中的天数 (001..366)

%k

小时 (0..23)

%l

小时 (1..12)

%M

月份名称 (January..December)

%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位数)

%%

‘%’文字字符


### MySQL格式化时间日期的方法 在 MySQL 中,`STR_TO_DATE()` `DATE_FORMAT()` 是两个常用的函数,分别用于将字符串转换为日期时间类型日期时间类型格式化为字符串。以下是关于这两个函数的详细说明示例。 #### 1. 使用 `DATE_FORMAT()` 格式化日期时间 `DATE_FORMAT()` 函数允许用户根据自定义的格式字符串来格式化日期时间数据[^2]。 - **语法**: ```sql DATE_FORMAT(date, format) ``` - `date`: 要格式化日期时间值。 - `format`: 指定输出格式的字符串。 - **示例**: ```sql SELECT DATE_FORMAT('2024-05-29 15:23:45', '%Y年%m月%d日 %H时%i分%s秒') AS formatted_datetime; ``` 上述查询将返回:`2024年05月29日 15时23分45秒`[^2]。 - **常用格式化字符**: | 格式字符 | 描述 | 示例 | |----------|--------------------------|--------------| | `%Y` | 四位数的年份 | 2024 | | `%m` | 两位数的月份 | 05 | | `%d` | 两位数的日期 | 29 | | `%H` | 24 小时制的小时数 | 15 | | `%i` | 分钟数 | 23 | | `%s` | 秒数 | 45 | #### 2. 使用 `STR_TO_DATE()` 将字符串转换为日期 `STR_TO_DATE()` 函数可以将指定格式的字符串转换为日期时间类型[^3]。 - **语法**: ```sql STR_TO_DATE(string, format) ``` - `string`: 包含日期时间信息的字符串。 - `format`: 指定输入字符串的格式。 - **示例**: ```sql SELECT STR_TO_DATE('2024-05-29 15:23:45', '%Y-%m-%d %H:%i:%s') AS converted_datetime; ``` 上述查询将返回一个 `DATETIME` 类型的值:`2024-05-29 15:23:45`。 #### 3. 实际场景中的应用 以下是一个结合 `STR_TO_DATE()` `DATE_FORMAT()` 的实际场景示例: 假设有一个包含字符串格式日期的表 `events`,其中 `event_date` 列存储的是类似 `'2024-05-29'` 的字符串。可以通过以下查询将其转换为日期格式化输出: ```sql SELECT event_date, DATE_FORMAT(STR_TO_DATE(event_date, '%Y-%m-%d'), '%Y年%m月%d日') AS formatted_date FROM events; ``` 上述查询将 `event_date` 列中的字符串转换为日期,并以 `YYYY年MM月DD日` 的格式输出。 #### 4. 其他相关函数 除了 `DATE_FORMAT()` `STR_TO_DATE()`,MySQL 还提供了其他一些处理日期时间的函数[^4]: - `NOW()`: 返回当前日期时间。 - `CURDATE()`: 返回当前日期。 - `CURTIME()`: 返回当前时间。 - `DATE()`: 提取日期部分。 - `TIME()`: 提取时间部分。 - **示例**: ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS today_date, DATE_FORMAT(NOW(), '%H:%i:%s') AS current_time; ``` #### 注意事项 - 确保输入的格式字符串与数据的实际格式一致,否则可能会导致错误或意外结果[^3]。 - 在大规模数据处理中,应尽量避免频繁调用日期时间函数,以免影响性能[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫云的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值