【问题标题】:Convert VB Date() and DateAdd functions to PHP将 VB Date() 和 DateAdd 函数转换为 PHP
【发布时间】:2015-05-06 00:22:03
【问题描述】:

我有一个简单的 VBA 函数,它显示从当前日期到 21 天前的记录。

WHERE date_added between Date() and DateAdd('d', -21, Date())

如何使用 PHP 和 MySQL 获得相同的效果?

当我运行上面的代码时,我得到了这个错误:

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ') 和 DateAdd('d', -21, Date())' 附近使用正确的语法"

【问题讨论】:

  • 只使用同一个mysql查询!
  • @Alex:他可能在问DateAdd 部分;该代码是 SQL 和 VB 的奇怪组合,没有任何区别,可能是因为它实际上是 Access VBA,而不是 VB.NET 或 VBScript。
  • @NathanTuggy 也许吧。但我们有DATEDIFF 和mysql。但他不是在询问 mysqlsql 转换,而是在询问 vbphp ;-) :-)
  • @Alex:您确定 SQL 方言差异和宿主语言差异之间的区别是清楚的吗?因为作为一名 Access 程序员,我不会对有人犯我所描述的错误感到惊讶。
  • 我确信任何 sql 查询都与编程语言完全隔离。因此您始终可以从任何具有驱动程序的语言访问 Access db。您可以从 php 或 VB 请求任何 sql server MS SQL、MySQL 或 Oracle 或任何其他。

标签: php mysql ms-access vba


【解决方案1】:

在 MySQL 方言中,你想要

WHERE date_added BETWEEN CURDATE() - INTERVAL 21 DAY
                     AND CURDATE()

请注意,仅当 date_added 是 DATE 数据类型时,这才能正常工作。如果它有你想要的时间组件

WHERE date_added >= CURDATE() - INTERVAL 21 DAY
  AND date_added <  CURDATE() + INTERVAL 1 DAY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多