【发布时间】:2017-07-11 11:39:46
【问题描述】:
使用 SQL Server Management Studio,我有一个使用日期参数的查询,但是当我执行查询时,我看到了不在所选日期范围内的行。
DECLARE @StartDate Date = '7/10/2017'
DECLARE @EndDate Date = '7/17/2017'
SELECT DISTINCT
PROJECTID,
ACTIVITYID, ACTIVITYNAME,
ISPRIMARYRESOURCE, RESOURCEID,
STARTDATE, FINISHDATE,
FORMAT(STARTDATE,'dddd') + ', ' + FORMAT(STARTDATE,'m') + ', ' +
FORMAT(STARTDATE,'yyyy') AS ES_FORMATTED
FROM
Primavera_ODS.TASKRSRCX
WHERE
PROJECTID IN ('ONLINE', 'ESR01', 'H-ONL-Active', 'HNP-NBKRRPLD', 'HNP-RVH-LIV',
'HNP-CSCR-LIV', 'HNP-TCS-LIV', 'HNP-LPT-LIV', 'HNP-DICSP-LIV',
'HNP-NRRVHE', 'HNP-IDS-LIV')
AND FINISHDATE >= @StartDate
AND STARTDATE < @EndDate
ORDER BY
STARTDATE
STARTDATE 和 FINISHDATE 字段被格式化为日期时间。
执行查询时,第一行显示 STARTDATE 为 2012-11-01 08:00:00.000,FINISHDATE 为 2018-09-27 17:00:00.000。显然不在声明的日期范围内。
我做错了什么?
【问题讨论】:
-
请发帖minimal reproducible example。 “最小”意味着去掉不相关的部分,就像所有与
PROJECTID相关的废话。 “可验证”是指包括CREATE TABLE语句和示例数据(在INSERT INTO语句的来源中),以便我们可以准确地看到您的查询产生了哪些意外结果。 -
最好表明这些答案是否有助于解决您的问题以及它们的作用。
标签: sql-server datetime