MySql 中的时间

本文介绍了MySQL中各种时间格式化的操作方法,包括不同时间类型的使用场景、如何格式化时间戳为可读格式,以及如何利用Mysql内置函数进行时间格式转换等。此外,还对比了Date、Datetime与Timestamp类型的特点,并提供了查看当前时间及对时间进行增减的操作示例。

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

一.常用的时间格式化

有时候从数据库取出的 Date 时间格式,会变成时间戳形式,这时候需要进行转换,比较常用的是

1. 在 java 中格式化

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date;
date = sdf.parse((String) param.get("date"));

或者使用 String.format()方法 :

String date = String.format("%1$tF %1$tT", new Date());

显然这种方式需要一个个进行转换,效率低下

2.利用 FROM_UNIXTIME() 和 UNIX_TIMESTAMP() 函数

FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y-%m-%d %H:%i:%s') date,

将这段语句放在Date字段前,但这种方法有个弊端,就是如果数据库中的时间单位为null的话,会自动给查询生成一个当前时间

3.利用 DATE_FORMAT() 函数

DATE_FORMAT(date,'%Y-%m-%d %H:%i:%s') as a,

再给这个字段值赋个别名,可以很顺利取出想要的时间格式

二.Mysql中常见的时间类型

1.Date

Date类型只会存储 年月日,不会存储时间部分,存储时需要三个字节。

可以使用 current_date 查看当前日期:

select current_date;

2.Datetime

Datetime 类型使用8个字节来表示日期和时间。

时间范围从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59',且和时区无关,怎么存就怎么取。


3.timestamp

timestamp类型使用4个字节来表示日期和时间。

时间为UTC时间,范围从 '1970-01-01 00:00:01'  到 '2038-01-19 03:14:07',且和时区有关,例如在东八区插入'2020-06-15 12:30:30',在东七区显示时,时间部门就变成了'2020-06-15 11:30:30'.
 

注:时间类型尽量选取 timestamp 。因为 datetime 占用8字节, timestamp 仅占用4字节,但是范围
为 1970-01-01 00:00:01 到 2038-01-01 00:00:00 。更为高阶的方法,选用 int 来存储时间,使用SQL函 数
unix_timestamp() from_unixtime() 来进行转换。

三.Mysql 中查看当前时间

select current_date;

SELECT CURRENT_TIMESTAMP;

SELECT CURRENT_TIMESTAMP();

SELECT NOW();

SELECT LOCALTIME;

SELECT LOCALTIME();

SELECT LOCALTIMESTAMP;

SELECT LOCALTIMESTAMP();

四.Mysql对时间进行增加或减少

可以利用 INTERVAL 

加一天:

select NOW() + INTERVAL 1 DAY;

减一天:

select NOW() - INTERVAL 1 DAY;

加 30 分钟:

select NOW() + INTERVAL 30 MINUTE;

减 30 分钟:

select NOW() - INTERVAL 30 MINUTE;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

纯洁的小魔鬼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值