我有一列 permission_to
的日期时间类型为:2016-12-31 00:00:00
我想将此值更改为:2016-12-31 23:59:59
。我不需要更新行,因为我需要原始值,但我想在查询中使用修改后的值来与另一列进行比较,如下所示:
SELECT
d.id_machine
IF(
d.permission_from < '2016-01-01 00:00:00',
'2016-01-01 00:00:00',
d.permission_from
) AS date_from,
IF(
'(HERE I NEED FUNCTION TO CHANGE DATETIME FROM 2016-12-31 00:00:00 TO 2016-12-31 23:59:59) > 2016-02-02 23:59:59',
'2016-02-02',
(AGAIN THE SAME FUCTION)
) AS date_to
FROM tbl_decision AS d
有没有MySQL函数可以在不更新的情况下修改datetime中的时间?
最佳答案
当我们处理'结束日期'时,我们通常使用后一天,然后我们使用'小于'操作来与这个日期进行比较。
示例:我们使用 2017-01-01 而不是 2016-12-31 当我们使用 < 时,我们将 2016 年带到最后一刻。
SELECT
d.id_machine
IF(
d.permission_from < '2016-01-01 00:00:00',
'2016-01-01 00:00:00',
d.permission_from
) AS date_from,
IF(
DATE_ADD(d.permission_to,INTERVAL 1 DAY) > 2016-02-02 23:59:59',
'2016-02-02',
DATE_ADD(d.permission_to,INTERVAL 1 DAY)
) AS date_to
FROM tbl_decision AS d
关于MySQL - 更改日期时间的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35741678/