如何从MySQL的时间戳中选择日期?

如何从MySQL的时间戳中选择日期?

在MySQL中,时间戳是以秒为单位的整数,从1970年1月1日起的秒数。在某些情况下,我们需要从时间戳中选择日期,本文将介绍如何使用MySQL中的函数来解决这个问题。

阅读更多:MySQL 教程

选择日期的方式

我们可以使用下列函数来选择日期:

  • DATE_FORMAT()函数:将时间戳格式化为指定的日期时间格式。
  • FROM_UNIXTIME()函数:将时间戳转换为日期时间格式,支持国际化。
  • DATE()函数:提取日期部分,去掉时间部分。
  • YEAR()函数、MONTH()函数、DAY()函数:提取年、月、日的值。
-- 示例表
CREATE TABLE `orders` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `order_time` int(11) NOT NULL COMMENT '订单时间(时间戳)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 插入记录
INSERT INTO `orders` (`order_time`) VALUES (1624109406), (1624109445), (1624109579), (1624110283);

DATE_FORMAT()函数

DATE_FORMAT()函数通过指定日期格式,将时间戳转换为日期字符串。常见的格式有%Y-%m-%d %H:%i:%s%Y%m%d两种。例如:

-- 格式:2021-06-19 11:16:46
SELECT DATE_FORMAT(FROM_UNIXTIME(order_time), '%Y-%m-%d %H:%i:%s') AS order_date FROM orders;
-- 年月日格式:20210619
SELECT DATE_FORMAT(FROM_UNIXTIME(order_time), '%Y%m%d') AS order_date FROM orders;

这里使用了FROM_UNIXTIME()函数,将时间戳转换为日期时间格式。

如果要筛选某个日期之间的记录,可以使用BETWEEN关键字:

SELECT * FROM orders WHERE FROM_UNIXTIME(order_time) BETWEEN '2021-06-19 00:00:00' AND '2021-06-19 23:59:59';
SELECT * FROM orders WHERE DATE_FORMAT(FROM_UNIXTIME(order_time), '%Y%m%d') = '20210619';

FROM_UNIXTIME()函数

FROM_UNIXTIME()函数可以将时间戳格式化为指定的日期时间格式,同时支持国际化:

-- 标准格式:2021-06-19 11:16:46
SELECT FROM_UNIXTIME(order_time) AS order_date FROM orders;
-- 中文格式:2021年06月19日 11:16:46
SELECT DATE_FORMAT(FROM_UNIXTIME(order_time, '%Y年%m月%d日 %H:%i:%s')) AS order_date FROM orders;

DATE()函数

DATE()函数可以提取日期部分,去掉时间部分:

-- 取日期部分:2021-06-19
SELECT DATE(FROM_UNIXTIME(order_time)) AS order_date FROM orders;

YEAR()函数、MONTH()函数、DAY()函数

YEAR()函数、MONTH()函数、DAY()函数可以提取年、月、日的值:

-- 取年份:2021
SELECT YEAR(FROM_UNIXTIME(order_time)) AS order_year FROM orders;
-- 取月份:6
SELECT MONTH(FROM_UNIXTIME(order_time)) AS order_month FROM orders;
-- 取日期:19
SELECT DAY(FROM_UNIXTIME(order_time)) AS order_day FROM orders;

结论

以上就是从MySQL时间戳中选择日期的方法。我们可以使用DATE_FORMAT()FROM_UNIXTIME()DATE()YEAR()MONTH()DAY()函数来实现。其中,DATE_FORMAT()函数可以将时间戳转换为指定的日期时间格式,FROM_UNIXTIME()函数支持国际化。使用这些函数,我们可以方便地进行日期筛选操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程