MySQL时间戳/日期默认值

时间:2019-03-03 00:28:41

标签: mysql date timestamp

我在MySQL中有表“ client”。我想设置一个默认日期,但是正如我注意到的那样,使用“ DEFAULT CURDATE()”是不可能的。有人说可以通过将数据类型从last_seen更改为timestamp来实现。但是否可以将“%d-%m-%Y”或“%Y-%m-%d”设置为默认值,因为使用时间戳,我也可以得到几分钟和几分钟。

listview.footer = null

1 个答案:

答案 0 :(得分:1)

TIMESTAMPDATETIME数据类型支持自动初始化和更新(请参阅manual),在这种情况下,您可以将last_seen声明为

last_seen TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

要变通解决只需要一个日期这一事实,可以有两种选择。您可以将generated column添加到表中(并在SELECT中使用它而不是last_seen):

ALTER TABLE client ADD last_seen_date AS (DATE(last_seen))

或者您可以创建一个VIEW

CREATE VIEW client_view AS
SELECT pk_macaddr, ipaddress, hostname, fk_pk_roomnumber, DATE(last_seen) AS last_seen, is_online
FROM client