MYSQL中UNIX时间戳(int)与日期(date)的转换

本文详细介绍了在PHP开发中如何将MySQL时间字段从数字格式转换为日期格式,通过使用FROM_UNIXTIME和UNIX_TIMESTAMP函数,实现数据的高效读取和展示。

做PHP开发的,在创建MYSQL的时间字段类型一般是int(10),不过有时间为了提取数据的时候,希望输出的是日期格式,而不是一串的数字。

mysql> select FROM_UNIXTIME(1156219870,’%y-%m-%d’);
+————————————–+
| FROM_UNIXTIME(1156219870,’%y-%m-%d’) |
+————————————–+
| 06-08-22                             |
+————————————–+
1 row in set (0.03 sec)

mysql> SELECT UNIX_TIMESTAMP(’2006-11-04 12:23:00′);
+—————————————+
| UNIX_TIMESTAMP(’2006-11-04 12:23:00′) |
+—————————————+
|                            1162614180 |
+—————————————+
1 row in set (0.00 sec)

在 SQL 中,将时间戳转换日期格式的方法因数据库类型而异。以下是一些常见数据库的实现方式: ### SQL Server 在 SQL Server 中,可以通过 `DATEADD` 和 `DATEDIFF` 函数结合基准时间(如 '1970-01-01')来实现时间戳日期转换。例如: ```sql DECLARE @timestamp INT = 1612137600 -- 示例时间戳 SELECT DATEADD(SECOND, @timestamp, '1970-01-01') AS converted_date ``` 此查询会将时间戳 `1612137600` 转换为对应的日期时间格式 `2021-02-01 00:00:00` [^1]。 ### MySQLMySQL 中,可以使用 `FROM_UNIXTIME()` 函数直接将时间戳转换日期datetime 格式。例如: ```sql SELECT FROM_UNIXTIME(1612137600, '%Y-%m-%d') AS converted_date ``` 此查询会将时间戳 `1612137600` 转换为字符串 `'2021-02-01'` [^5]。 ### Hive SQL 在 Hive SQL 中,可以使用 `from_unixtime()` 函数将时间戳转换为指定格式的日期。例如: ```sql SELECT from_unixtime(1612137600, 'yyyy-MM-dd') AS converted_date ``` 此查询会将时间戳 `1612137600` 转换为字符串 `'2021-02-01'` [^3]。 ### Spark SQL 在 Spark SQL 中,可以使用 `to_timestamp` 和 `date_format` 函数组合来实现时间戳日期转换。例如: ```sql SELECT date_format(to_timestamp('1612137600'), 'yyyy-MM-dd') AS converted_date ``` 此查询会将时间戳 `1612137600` 转换为字符串 `'2021-02-01'` [^4]。 ### PostgreSQL 在 PostgreSQL 中,可以使用 `TO_TIMESTAMP()` 函数将时间戳转换日期或时间格式。例如: ```sql SELECT TO_CHAR(TO_TIMESTAMP(1612137600), 'YYYY-MM-DD') AS converted_date ``` 此查询会将时间戳 `1612137600` 转换为字符串 `'2021-02-01'` [^2]。 ### 总结 不同数据库系统提供了不同的函数来处理时间戳日期之间的转换,具体方法包括但不限于 `DATEADD`, `DATEDIFF`, `FROM_UNIXTIME`, `from_unixtime`, `to_timestamp`, `date_format`, 和 `TO_TIMESTAMP` 等。选择合适的方法取决于所使用的数据库系统。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值