1

我目前正在运行一个 PHP 脚本,该脚本从 Facebook 获取数据并将其放入我的 SQL 数据库中。我现在希望能够查看在数据抓取后 2 小时内发布了哪些 Facebook 帖子,并且我意识到 NOW() 命令的时间比 Facebook 服务器的偏移量提前了 4 小时。

这给我带来了三个问题:

1)有没有办法执行一个选择命令,我可以将日期偏移 4 小时?

2) 有没有办法修改行以将日期偏移 4 小时?

3)这些方法是否真的会将整个日期设置回去,这样如果一个日期是今天(3月13日)的1:00,它将被修改为前一天(3月12日)的21:00。

非常感谢!

4

2 回答 2

1

在 SQL 中使用日期的任何地方,您都可以在选择、插入和 where 中使用 DATEADD 函数

 DATEADD(hour,4,datevalue)

要返回只需使用负数

 DATEADD(hour,-4,datevalue)

所以这

DECLARE @datetime datetime = '2013-03-13 01:01:01.110';
SELECT DATEADD(hour, -4, @datetime);

返回这个:

2013-03-12 21:01:01.110
于 2013-03-13T17:24:27.630 回答
1

1)有没有办法执行一个选择命令,我可以将日期偏移 4 小时?

是的,使用DATEADD/DATE_ADD

2) 有没有办法修改行以将日期偏移 4 小时?

你不应该修改数据。

3)这些方法是否真的会将整个日期设置回去,这样如果一个日期是今天(3月13日)的1:00,它将被修改为前一天(3月12日)的21:00。

如果您正在使用DATEADD/DATE_ADD函数并且您的日期在一个date类型中,那么是的。

SQL Server 手册

MySQL 手册

于 2013-03-13T17:24:55.633 回答