在mysql中仅插入时间戳中的日期

时间:2018-06-11 09:14:24

标签: mysql

在time_ts列下的我的数据库中,我有日期例如

2018-06-11 13:00:00

2018-06-12 17:00:00

2018-06-12 10:00:00

我使用此查询插入此列:

  

INSERT INTO tbl_scoreTime_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

5 个答案:

答案 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;

Demo

我没有看到这样做的重点,因为查询时可以从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')