在mysql中,要求将一个13位时间戳(UTC时间)中的年月日(UTC时间)都更改成指定的年月日(UTC时间)但保证时分秒不变,最后又输出成一个新的13位时间戳(UTC时间),要怎么写sql语句
时间: 2024-06-21 07:02:53 浏览: 136
可以使用MySQL的DATE_FORMAT()和UNIX_TIMESTAMP()函数来实现将13位时间戳中的年月日更改为指定的年月日,但保证时分秒不变,最后输出成一个新的13位时间戳。具体的SQL语句如下:
```
SELECT UNIX_TIMESTAMP(CONCAT(DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP('2022-01-01 00:00:00')+timestamp/1000), '%Y-%m-%d'), ' ', DATE_FORMAT(FROM_UNIXTIME(timestamp/1000), '%H:%i:%s'))) * 1000 AS new_timestamp FROM your_table_name;
```
其中,'2022-01-01 00:00:00'是指定的年月日,your_table_name是你要操作的表名。
相关问题
用mysql 怎么把13位时间戳(UTC时间)转换成UTC时间
可以通过MySQL的FROM_UNIXTIME()函数来将13位时间戳转换为UTC时间。具体用法如下:
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP('1970-01-01 00:00:00') + 1594386961831/1000, '%Y-%m-%d %H:%i:%s');
其中,1594386961831是13位时间戳,除以1000是为了将其转换为10位时间戳,再加上1970-01-01 00:00:00的时间戳(即0),就可以得到具体的UTC时间。
mysql语句中把时间戳转化成当前时间年月日时分秒格式
可以使用MySQL内置函数`FROM_UNIXTIME()`将时间戳转换为当前时间的年月日时分秒格式,语法如下:
```sql
SELECT FROM_UNIXTIME(timestamp,'%Y-%m-%d %H:%i:%s') AS datetime FROM table_name;
```
其中,`timestamp`为时间戳字段,`table_name`为表名。该语句将会把时间戳转换成年-月-日 时:分:秒的格式,并将其命名为`datetime`字段返回。
阅读全文