以下是我试图运行的PostgreSQL中的代码:
select DATE_ADD(whenbooked,INTERVAL 4 HOUR) from booking WHERE id = 12310;
或者我尝试运行此代码:
select DATE_ADD('2010-11-19 01:11:22',INTERVAL 4 HOUR)
两个代码以相同的方式存储日期/时间:
2010-11-19 01:11:22
PostgreSQL错误代码是这样的:
错误:语法错误处于或接近“4”
指的是'INTERVAL 4 HOUR'行中的'4'。
我无法弄清问题是什么。
我需要将时间/标记(以与上面完全相同的格式编写)与存储的时间/日期加4小时进行比较。
因此,期望的最终结果是返回:'2010-11-19 05:11:22'
。
如果可以在PHP中直接在SQL中完成?
答案 0 :(得分:3)
根据您的评论
我只是将这些代码输入 PgAdmin。
看起来你实际上在使用PostgreSQL而不是MySQL。
您可以在PostgreSQL here上查看在PostgreSQL上运行的现有代码,它会产生与您相同的错误。
要正确使用PostgreSQL中的日期,您可以在PostgreSQL上查看日期函数列表documentation site here
你要做的是:
SELECT TIMESTAMP '2010-11-19 01:11:22' + INTERVAL '4 HOURS';
答案 1 :(得分:0)
我发现了一种适用于PHP的方法:
$desiredEndTime = strtotime("2010-11-19 01:11:22 + 10 hours");
echo date("Y-m-d H:i:s", $desiredendtime);
看起来它将日期/时间转换为奇怪的整数。然后在第二行将其转换回我想要的格式。现在我可以将其插回到SQL中。
谢谢!
答案 2 :(得分:0)
使用“strtotime”方法将其简单地转换为时间戳,然后您可以随心所欲地做任何事情