mysql 日期格式

本文深入解析SQL中的DATE_FORMAT()函数,详细介绍了如何使用此函数以多种方式格式化日期和时间,包括秒、分钟、小时、时间、日期等不同格式。涵盖了从秒到星期的全部日期时间元素的格式化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DATE_FORMA T(date, format) 根据格式串format 格式化日期或日期和时间值date,返回结果串。

  可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式化date值:

  %S, %s 两位数字形式的秒( 00,01, . . ., 59)

  %i 两位数字形式的分( 00,01, . . ., 59)

  %H 两位数字形式的小时,24 小时(00,01, . . ., 23)

  %h, %I 两位数字形式的小时,12 小时(01,02, . . ., 12)

  %k 数字形式的小时,24 小时(0,1, . . ., 23)

  %l 数字形式的小时,12 小时(1, 2, . . ., 12)

  %T 24 小时的时间形式(h h : m m : s s)

  %r 12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)

  %p AM 或P M

  %W 一周中每一天的名称( S u n d a y, Monday, . . ., Saturday)

  %a 一周中每一天名称的缩写( Sun, Mon, . . ., Sat)

  %d 两位数字表示月中的天数( 00, 01, . . ., 31)

  %e 数字形式表示月中的天数( 1, 2, . . ., 31)

 %D 英文后缀表示月中的天数( 1st, 2nd, 3rd, . . .)

  %w 以数字形式表示周中的天数( 0 = S u n d a y, 1=Monday, . . ., 6=Saturday)

  %j 以三位数字表示年中的天数( 001, 002, . . ., 366)

  % U 周(0, 1, 52),其中Sunday 为周中的第一天

  %u 周(0, 1, 52),其中Monday 为周中的第一天

  %M 月名(J a n u a r y, February, . . ., December)

  %b 缩写的月名( J a n u a r y, February, . . ., December)

  %m 两位数字表示的月份( 01, 02, . . ., 12)

  %c 数字表示的月份( 1, 2, . . ., 12)

  %Y 四位数字表示的年份

  %y 两位数字表示的年份

  %% 直接值“%”

  select date_format(日期字段,’%Y-%m-%d’) as ‘日期’ from test
### MySQL 时间格式使用方法 在 MySQL 中,`DATETIME` 和 `TIMESTAMP` 类型用于表示日期和时间的组合。这些类型的存储格式为 `'YYYY-MM-DD HH:MM:SS'`[^1]。 对于 `DATE` 类型,仅表示日期部分,其格式为 `'YYYY-MM-DD'`;而 `TIME` 类型则专门用来保存一天中的某个时刻,格式为 `'HH:MM:SS'` 或者带有微秒精度的形式 `'HH:MM:SS.uuuuuu'`;最后,`YEAR` 类型只记录年份信息,默认情况下采用四位数表示法,即 `'YYYY'`。 下面是一些关于如何操作上述各种数据类型的 SQL 语句实例: #### 插入当前时间和日期 可以利用 NOW() 函数来获取并插入系统的当前日期与时间到数据库表中: ```sql INSERT INTO table_name (datetime_column) VALUES (NOW()); ``` #### 设置默认值为当前时间戳 当创建新纪录时自动设置某一列为当前的时间戳,可以通过定义列属性实现这一点: ```sql CREATE TABLE example ( id INT NOT NULL AUTO_INCREMENT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY(id) ); ``` #### 更新时间为最近修改时间 为了跟踪每条记录最后一次被更改的时间,在更新其他字段的同时也可以同步刷新特定的时间戳字段: ```sql UPDATE example SET content='new text', updated_at=CURRENT_TIMESTAMP WHERE id=1; ``` #### 查询指定范围内的记录 通过比较两个给定的时间点之间的差异来进行筛选查询: ```sql SELECT * FROM events WHERE event_date BETWEEN '2023-01-01' AND '2023-12-31'; ``` #### 处理带有时区的数据 如果应用程序涉及多个不同时区的操作,则可能需要用到 CONVERT_TZ() 函数转换不同地区的标准时间: ```sql SELECT CONVERT_TZ(event_time,'+00:00','+8:00') AS local_event_time FROM global_events; ``` 以上就是一些基本的例子展示了怎样有效地管理和处理 MySQL 数据库里的不同类型的时间格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值