如何在mysql或使用Linux shellscript中在当前时间戳上添加2:30 hrs创建新列?

时间:2018-10-12 18:46:31

标签: mysql mysql-workbench

我在MySQL数据库中有一个表,该表使用UTC的时间戳为特定用户注册事件。我想创建一个新列,其中将2:30hrs添加到记录的所有事件的时间中。该表有多个列。

例如:-

         date                Event              User
 2018-07-19 04:40:27         regis              hunt
 2018-07-19 04:40:27        Extra_one           poliu
 2018-07-19 04:40:27       temperature          Yinri

预期结果是在2:30:10 hrs:mins:sec列的上述时间戳中添加date的新列。

         date                Event           User        newtime
 2018-07-19 04:40:27         regis           hunt      2018-07-19 07:10:37
 2018-07-19 05:41:47       Extra_one         poliu     2018-07-19 08:11:57
 2018-07-19 14:10:37      temperature        Yinri     2018-07-19 16:40:47

我将在本地下载它并且也可以工作,因此使用linux-scripts / sed / awk的解决方案也很好。我尝试使用addtime(),但无法对MySQL中的所有条目进行更改。

1 个答案:

答案 0 :(得分:0)

您可以使用DATE_ADD()功能。

UPDATE your_table_name 
SET newtime = DATE_ADD(`date`, INTERVAL '2:30:10' HOUR_SECOND);

OR

MySQL还允许操作员+添加日期时间间隔,以代替使用Date_Add()函数。您还可以使用以下内容:

UPDATE your_table_name 
SET newtime = `date` + INTERVAL '2:30:10' HOUR_SECOND;