将 VB Date() 和 DateAdd 函数转换为 PHP

Posted

技术标签:

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

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

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

如何使用 phpmysql 获得相同的效果?

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

“您的 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 或任何其他。 【参考方案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

【讨论】:

以上是关于将 VB Date() 和 DateAdd 函数转换为 PHP的主要内容,如果未能解决你的问题,请参考以下文章

关于vb 中的日期时间函数

vb时间的加减

vb 请问,关于系统日期,再加上固定天数,得出的日期的方法,谢谢.

oracle dateadd函数

VB中如何设置调整label的字体、大小和颜色?

SQL Server DATEADD() 函数及实际项目应用注意事项