我正在开发一个包含以下mysql行的页面。总体目标只是将当前周数与当前日期相匹配
$sql = "select distinct weekNum from " . DB_PREFIX . "schedule where DATE_ADD(NOW(), INTERVAL " . SERVER_TIMEZONE_OFFSET . " HOUR)"
As per my research DATE_ADD()
可让您在某个日期添加特定天数。
因此我假设DATE_ADD(NOW()
将当前日期添加到......日期?
INTERVAL
在此声明中做了什么。
非常感谢任何有助于澄清以上声明的解释。
答案 0 :(得分:4)
DATE_ADD(NOW(), INTERVAL 2 HOURS)
- 这将增加2小时到当前时间
- 格式为DATE_ADD(date, INTERVAL value unit)
值可以是任何东西 - >一个数字
单位将是 - >以下列表中的任何内容
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
因此,您可以使用此功能将分钟,小时,月份添加到您的日期
就像那样你可以使用DATE_SUB(日期,INTERVAL值单位)这个函数来减去希望你清楚的日期。有关更多信息,请访问链接[https://www.w3schools.com/sql/func_mysql_date_add.asp]
答案 1 :(得分:3)
据我所知,这句话试图管理时区差异
INTERVAL " . SERVER_TIMEZONE_OFFSET . " HOUR
应该返回不同时区(服务器和偏移量)的差异(以小时为单位),然后将其添加到当前日期以计算实际的调度时间。
来自https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add
DATE_ADD(日期,INTERVAL expr单位),DATE_SUB(日期,INTERVAL expr单位) 这些函数执行日期算术。 date参数指定开始日期或日期时间值。 expr是一个表达式,用于指定要从开始日期添加或减去的区间值。 expr是一个字符串;它可能以 - 以负间隔开始。 unit是一个关键字,表示应该解释表达式的单位。
答案 2 :(得分:3)
它需要一个日期 - 就是这种情况"现在"和广告几个小时。 在这种情况下,它读取服务器时区偏移量并添加它。
结果将是您根据基于GMT-0的时间进行选择的日期。
答案 3 :(得分:2)
函数DATE_ADD()
有两个参数:
1.您要添加任何间隔的日期
2.单位数量的关键词INTERVAL numbe UNITS,其中' UNITS'可以是MILLISECONDS~YEAR