从文本列创建时间戳虚拟列

时间:2019-04-16 15:59:27

标签: mysql timestamp virtual

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

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

我试图创建一个默认值为

的虚拟列
TIMESTAMP('field_date_text')

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

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

2 个答案:

答案 0 :(得分:0)

您可以使用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')

答案 1 :(得分:0)

我使用此函数作为虚拟计算值来解决

TIMESTAMP(str_to_date('field_date_text','%d/%m/%Y %H:%i'));