在time_ts列下的我的数据库中,我有日期例如
2018-06-11 13:00:00
2018-06-12 17:00:00
2018-06-12 10:00:00
我使用此查询插入此列:
INSERT INTO
tbl_score
(Time_ts
)VALUES(CURRENT_TIMESTAMP);
从 time_ts 列,我想获取日期并在每次插入后自动插入 date_ts 列。 最后,我想看到这个:
time_ts .............. | date_ts
............................................... ......
2018-06-11 13:00:00 ....... 2018-06-11
2018-06-12 17:00:00 ....... 2018-06-12
2018-06-12 10:00:00 ....... 2018-06-12
对不起,我要编辑我的问题......
现在如何更新行? 我想从time_ts读取并更新date_ts
答案 0 :(得分:2)
或者您可以改为使用INSERT INTO tbl_score (Time_ts, Date_ts) VALUES (CURRENT_TIMESTAMP, NOW());
。
答案 1 :(得分:2)
只需使用date_format函数,
INSERT INTO tbl_score (Time_ts,date_ts) VALUES (CURRENT_TIMESTAMP,(date_format(CURRENT_TIMESTAMP,'%Y-%m-%d'));
答案 2 :(得分:2)
试试这个:
INSERT INTO tbl_score (Time_ts,date_ts) VALUES (CURRENT_TIMESTAMP,(DATE_FORMAT(CURRENT_TIMESTAMP, '%Y-%m-%d'));
示例here
输出是:
CURRENT_TIMESTAMP date
11.06.2018 11:50:34 2018-06-11
编辑:
UPDATE
使用此:
UPDATE tbl_score SET date_ts = (DATE_FORMAT(Time_ts, '%Y-%m-%d'));
答案 3 :(得分:1)
如果您想要当前日期(午夜),请使用CURDATE()
:
INSERT INTO tbl_score (time_ts, date_ts)
SELECT NOW(), CURDATE() FROM dual;
我没有看到这样做的重点,因为查询时可以从date_ts
值轻松生成time_ts
值。
答案 4 :(得分:1)
你需要一个触发器来实现这个目标:
CREATE TRIGGER before_insert_aptbl_score
AFTER INSERT ON tbl_score
FOR EACH ROW
SET new.date_ts = DATE_FORMAT(time_ts , '%Y-%m-%d')