添加一个小时的日期时间,包括上午-下午



我想获得两个日期之间的数据,我有一个以fromDate为输入的过程,例如,如果我给它一个日期2022/02/02 9:10:36 PM,我想给ToDate加3个小时,那么它应该是这样的:2022/02/02 12:10:36 AM

我尝试了DATE_ADD('2022/02/02 9:10:36 PM', INTERVAL +3 Hour),但它不起作用,它给了它PM,它应该是AM,因为它在增加了3个小时到晚上9点后的12点。

总结:我想在程序2022/02/02 9:10:36 ((PM))2022/02/02 12:10:36 ((AM))中获得3小时范围的数据,该程序采用起始日期,我想在计数中添加3小时AM PM

首先必须将字符串日期转换为实际的日期时间类型,然后添加小时数。使用str_to_date(),它可以告诉转换过程字符串的样子,这样它就可以正确地完成转换。

这是一个简单的演示

SELECT STR_TO_DATE('2022/02/02 9:10:36 PM', '%Y/%m/%d %h:%i:%s %p') original, 
DATE_ADD( STR_TO_DATE('2022/02/02 9:10:36 PM', '%Y/%m/%d %h:%i:%s %p') , INTERVAL +3 Hour) new_dt;

结果

original             new_dt
2022-02-02 21:10:36  2022-02-03 00:10:36

最好首先将日期和时间存储在适当的数据类型中,以便函数自动正确工作。如果您的位置需要特定的日期演示,请在演示层而不是存储层中进行转换

最新更新