sql - 如何从sql中的日期返回两天?
问题描述
我编写了一个 SQL 查询,可以让我获得某些商店的销售额。我的查询每天早上运行,我想在运行时获取 2 天前的销售额。
例如,如果我的查询在 08/12 明天早上运行,我希望列中的值"GP_HEURECREATION"
以“20200612”开头的销售额,以获取全天的所有销售额。
该GP_HEURECREATION
列的格式如下:"20200612 00:00:00"
并且属于DATE
类型。
我尝试使用NOW()
and 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
解决方案
您现有查询的语法建议使用 SQL Server。如果您想要属于第 -2 天的记录,您可以执行以下操作:
where gp_heurecreation >= dateadd(day, -2, convert(date, getdate()))
and gp_heurecreation < dateadd(day, -1, convert(date, getdate()))
如果gp_heurecreation
没有时间组件(在 SQL Server 中,这是一种date
数据类型),则更简单:
where gp_heurecreation = dateadd(day, -2, convert(date, getdate()))
推荐阅读
- eclipse - 关于 Poky 中 tcf-agent_git.bb 中的错误 URI
- android - 在 Android 设备上使用 Angular Ionic 加速计事件频率在前 5 分钟减慢
- sql - SQLite 为表中的每个类别或查询中的查询创建一个表
- kotlin - Espresso:每次测试开始前我如何杀死应用程序
- android - 使用 Firebase 存储和 Firebase Firestore 创建离线第一个应用程序的最佳方法是什么?#AskFirebase
- jsf - 单击 h:commandButton 后如何显示 ap:graphicImage
- python - 使用 python 从 SSH 服务器上传文件(PyAutoIt 的替代品)
- javascript - TypeError:无法读取未定义的属性“位置”&& 无法读取未定义的属性“位置”
- node.js - Firestore:搜索文档数组中的元素是否存在
- python - 输入与while循环结合