【问题标题】:Converting DateDiff and Count expressions from Access SQL to MySQL将 DateDiff 和 Count 表达式从 Access SQL 转换为 MySQL
【发布时间】:2014-06-29 17:48:52
【问题描述】:
请问,有人可以帮我解决这部分问题吗?它在 Microsoft Access 中运行良好,但在 MySQL 中无法运行:
DateDiff("m",[first_sent_date],[last_sent_date])+1 AS basetime_month, Count(tablename.id) AS cnt_all
【问题讨论】:
-
您必须将您的查询翻译成 MySQL 的 sql 方言。 MySQL使用即反引号来引用列名,功能也不同。 MySQL manual 将为您提供帮助。
标签:
mysql
ms-access
count
datediff
【解决方案1】:
Access SQL DateDiff 函数至少需要三 (3) 个参数。它根据第一个参数返回不同的值,即“间隔”。你的情况
DateDiff("m",[first_sent_date],[last_sent_date])
"m" 表示您想要以月为单位的差异。
MySQL DATEDIFF 函数只接受两 (2) 个参数,并始终返回天数差。与上面的 Access SQL DateDiff 表达式等效的 MySQL 类似于
((YEAR(`last_sent_date`) - YEAR(`first_sent_date`)) * 12) + MONTH(`last_sent_date`) - MONTH(`first_sent_date`)