enter image description here我正在创建两个值的查询,一个周期号和相应的日期。期间是与我们的月份相似但不相同的会计期间。日期大体上是正确的,但是我认为我会用WHERE语句清理一些不一致的地方。WHERE子句中的SQL-Server日期时间问题
例如,日期2015年4月1日所属期3,但在这两个周期3和周期4显示了为了解决这个问题,我想我会创建一个WHERE语句中指出:
SELECT DISTINCT table1.period,
table1.datetime
FROM table1
WHERE table1.period <> 4 AND table1.datetime <> '4/1/2015'
这带走了所有的4期而不是我需要的。我也尝试了日期时间语法:
AND table1.datetime <> '20150401 00:00:00.000'
两种语法都有相同的结果。我在SQL方面相当缺乏经验,并一直讨厌处理日期时间值,所以任何帮助都会很棒。
-EDIT-忘记将单引号添加到第一个datetime WHERE子句中。
这是table1.datetime的类型? –
@alex它是一个日期时间数据类型,而period是一个字符串。 – GHINOTE
它有日期的时间值吗?比较日期字符串时,您可能需要将日期转换为日期。如'2015年4月1日01:00:00.000'不等于'2015年4月1日',但CAST('4/1/2015 01:00:00.000'AS DATE)。 – BinaryPatrick