【发布时间】:2021-03-20 01:57:36
【问题描述】:
我编写了一个 SQL 查询,可以让我获得某些商店的销售额。 我的查询每天早上运行,我想在运行时获取 2 天前的销售额。
例如,如果我的查询在 08/12 明天早上运行,我希望获得列 "GP_HEURECREATION" 中值以“20200612”开头的销售额,以获得全天的所有销售额。
GP_HEURECREATION 列的格式如下:"20200612 00:00:00",属于DATE 类型。
我尝试使用 NOW() 和 DATEADD(),但例如,我有 2018 年的值。
如何在查询执行前两天获取值?
SELECT
T_ETABLISSEMENT, ET1.ET_LIBELLE AS C1, GL_ETABLISSEMENT,
GP_HEURECREATION, GP_REFINTERNE, GL_CODEARTICLE,
LIBDIM2, LIBDIM1, GL_QTEFACT, GL_PUTTC,
(GL_TOTALHT * GP_COTATIONDOS) AS TOTALHTDEV, GL_DPR, GL_DEVISE,
GL_NATUREPIECEG, GA_LIBELLE
FROM
GCLIGNEARTDIM
LEFT OUTER JOIN
PGI_LOOKUP(TTETABLISSEMENT) ET1 ON GL_ETABLISSEMENT = ET1.ET_ETABLISSEMENT
WHERE
(GP_HEURECREATION <= DATEADD(day, -2, GETDATE())
AND (GL_NATUREPIECEG = "FFO")
AND GL_ETABLISSEMENT = "20897", "10519", "20267", "26451", "20269", "26078", "28047", "20900", "28085", "24984", "27113", "20268", "19994", "28450", "26876", "24063", "18066", "3220"
ORDER BY
GP_REFINTERNE
【问题讨论】:
-
您使用的是哪个 dbms?
-
这是一个直接集成在我的 POS 软件中的 SQL 监视器
-
@Patrick62: (1) 日期函数是特定于数据库的。您需要弄清楚您正在运行的数据库产品。运行
select version()会发生什么? (2)GP_HEURECREATION列的数据类型是什么? -
sql 监视器和您的软件可以使用任何 dbms,是 MYSQL 、 Postgres 、 Oracle 还是 Microsoft SQL server?
-
GP_HEURECREATION列的类型为 DATE。我不确定我的数据库的类型,如何通过查询知道它? @GMB
标签: sql sql-server datetime where-clause date-arithmetic