gpt4 book ai didi

mysql - 如何创建触发器将日期列和时间列放在一起?

转载 作者:行者123 更新时间:2023-11-29 15:54:05 24 4
gpt4 key购买 nike

我需要使用其他列中的数据填充 DATETIME 列,一列表示日期,一列表示时间。

这是我编写的代码的一部分,但我一直坚持将它们实际组合起来:

谢谢!分隔符 $

创建触发器完整日期

before insert 



on Tabela_veche



for each row

开始

if new.fulldate is null then



set new.fulldate = = CONCAT();



end if;

结束$

最佳答案

假设你的表格看起来有点像这样

+----------+----------+------+-----+---------+---------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+---------+
| dt | date | YES | | NULL | |
| tm | time | YES | | NULL | |
| fulldttm | datetime | YES | | NULL | |
| gcdttm | datetime | YES | | NULL | VIRTUAL |
+----------+----------+------+-----+---------+---------+
4 rows in set (0.02 sec)

and dt is formatted '2019-01-01' and time '10:00:00' then str_to_date

select str_to_date(concat(dt,' ',tm),'%Y-%m-%d %h:%m:%s') dttm
from t;

返回

+---------------------+
| dttm |
+---------------------+
| 2019-00-01 10:00:00 |
+---------------------+
1 row in set (0.00 sec)

正如@Raymond Nijland 所指出的,您也许可以使用生成的列

`gcdttm` datetime AS (str_to_date(concat(dt,' ',tm) ,'%Y-%m-%d %h:%m:%s')) 

根本不用担心触发器。

+------------+----------+----------+---------------------+
| dt | tm | fulldttm | gcdttm |
+------------+----------+----------+---------------------+
| 2019-01-01 | 10:00:00 | NULL | 2019-00-01 10:00:00 |
+------------+----------+----------+---------------------+
1 row in set (0.00 sec)

关于mysql - 如何创建触发器将日期列和时间列放在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56595285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com