MySQL中如何将YYYY-MM-DD HH:MM:SS转换为HH:MM:SS并生成新列?
提取时间部分生成新列的SQL语句
假设你的表名为your_table,以下是不同主流SQL数据库对应的查询语句,用于从vedu_time列中提取HH:MM:SS格式的时间,生成新列ganta_time:
MySQL/MariaDB
使用TIME()函数直接提取时间部分:
SELECT vedu_time, TIME(vedu_time) AS ganta_time FROM your_table;
如果需要修改表结构,永久添加ganta_time列并填充数据:
-- 先添加列 ALTER TABLE your_table ADD COLUMN ganta_time TIME; -- 填充数据 UPDATE your_table SET ganta_time = TIME(vedu_time);
PostgreSQL
使用TO_CHAR()函数格式化时间:
SELECT vedu_time, TO_CHAR(vedu_time, 'HH24:MI:SS') AS ganta_time FROM your_table;
永久添加并填充列:
ALTER TABLE your_table ADD COLUMN ganta_time TIME; UPDATE your_table SET ganta_time = vedu_time::TIME;
SQL Server
使用CONVERT()函数指定格式提取:
SELECT vedu_time, CONVERT(VARCHAR(8), vedu_time, 108) AS ganta_time FROM your_table;
永久添加并填充列:
ALTER TABLE your_table ADD ganta_time TIME; UPDATE your_table SET ganta_time = CONVERT(TIME, vedu_time);
效果示例
| vedu_time | ganta_time |
|---|---|
| 2021-12-01 07:12:30 | 07:12:30 |
| 2021-12-01 07:20:44 | 07:20:44 |
| 2021-12-01 13:11:26 | 13:11:26 |
内容的提问来源于stack exchange,提问作者SRash
相关产品推荐
相关产品推荐

