如何在 WHERE 子句中定义输入日期(MS Access DB)
How to define input date in WHERE clause (MS Access DB)
我有以下问题。目前我正在使用这个 SQL 语句:
SELECT ID, MAX(Datum) AS DateField, Assets
FROM dbTable
WHERE Datum>=DateAdd("m",-12,Date())
GROUP BY Datum, ID, Assets
ORDER BY Datum DESC;
我需要用户输入日期的过去 12 个月,但我不知道如何在 WHERE 子句中定义输入(例如#01.01.2017#)?!
这意味着当用户 select 01/01/2017 那么结果需要是去年的所有 12 个月。
替换
Date()
和
Forms!MyForm!MyCombo.Value
按基准分组时 select Max(Datum) 没有意义。因此:
SELECT ID, Datum AS DateField, Assets
FROM dbTable
GROUP BY Datum, ID, Assets
HAVING Datum >= DateAdd("yyyy", -1, DateValue(Forms!YourForm!txtDatum))
ORDER BY Datum DESC;
好的,我解决问题如下:
SELECT ID, Datum, Assets
FROM dbTable
WHERE Datum>=DateAdd("m",-12,#01/01/2017#) and Datum<=#01/01/2017# and ID=325
GROUP BY Datum, ID, Assets
ORDER BY Datum DESC;
我有以下问题。目前我正在使用这个 SQL 语句:
SELECT ID, MAX(Datum) AS DateField, Assets
FROM dbTable
WHERE Datum>=DateAdd("m",-12,Date())
GROUP BY Datum, ID, Assets
ORDER BY Datum DESC;
我需要用户输入日期的过去 12 个月,但我不知道如何在 WHERE 子句中定义输入(例如#01.01.2017#)?!
这意味着当用户 select 01/01/2017 那么结果需要是去年的所有 12 个月。
替换
Date()
和
Forms!MyForm!MyCombo.Value
按基准分组时 select Max(Datum) 没有意义。因此:
SELECT ID, Datum AS DateField, Assets
FROM dbTable
GROUP BY Datum, ID, Assets
HAVING Datum >= DateAdd("yyyy", -1, DateValue(Forms!YourForm!txtDatum))
ORDER BY Datum DESC;
好的,我解决问题如下:
SELECT ID, Datum, Assets
FROM dbTable
WHERE Datum>=DateAdd("m",-12,#01/01/2017#) and Datum<=#01/01/2017# and ID=325
GROUP BY Datum, ID, Assets
ORDER BY Datum DESC;