我需要在MySQL表中添加一个虚拟列,该表存储从另一列(同一表)生成的时间戳记值。

我无法将现有列转换为时间戳,因为它可能会破坏许多其他过程,因此,为了更快地查询数据库,我需要一列具有相同数据但格式正确的列。

我试图用默认值创建一个虚拟列

TIMESTAMP('field_date_text')


但结果是NULL'field_date_text'字段的格式为"d/m/Y H:i"

从另一个字段将虚拟列添加为时间戳的正确语法是什么?

最佳答案

您可以使用TIMESTAMP()UNIX_TIMESTAMP()和/或STR_TO_DATE()

TIMESTAMP(STR_TO_DATE(field_date_text, '%d/%m/%Y %h:%i'))


要么

UNIX_TIMESTAMP(STR_TO_DATE(field_date_text, '%d/%m/%Y %h:%i'))


或只是STR_TO_DATE()

STR_TO_DATE(field_date_text, '%d/%m/%Y %h:%i')

关于mysql - 从文本列创建时间戳虚拟列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55712284/

10-16 22:12