sql<&燃气轮机;不使用datetime

sql<&燃气轮机;不使用datetime,sql,sql-server,tsql,datetime,Sql,Sql Server,Tsql,Datetime,我有一个简单的问题 SELECT * FROM SlabRateDetail WHERE Fromdate <> '01/04/2010 12:00:00 AM' 选择* 从slabratedeail 从日期'01/04/2010 12:00:00 AM'起的位置 但当我运行此查询时,我会在结果中看到01/04/2010 12:00:00 AM 知道为什么吗?我甚至试过使用=在指定日期文字(YYYY/MM/DD)时,使用明确的类似ISO8601的日期 e、 g 从slabra

我有一个简单的问题

SELECT * 
FROM SlabRateDetail 
WHERE Fromdate <> '01/04/2010 12:00:00 AM'
选择*
从slabratedeail
从日期'01/04/2010 12:00:00 AM'起的位置
但当我运行此查询时,我会在结果中看到
01/04/2010 12:00:00 AM


知道为什么吗?我甚至试过使用
=

在指定日期文字(
YYYY/MM/DD
)时,使用明确的类似ISO8601的日期

e、 g

从slabratedeail中选择*
从日期“2010-04-01 12:00:00 AM”开始的位置
我相信您看到的日期是
2010/01/04

默认情况下,SQL Server对文本使用美国日期约定
MM/DD/YYYY
(取决于您的服务器设置)

尝试以下操作

SELECT * FROM SlabRateDetail WHERE CONVERT(VARCHAR(10), Fromdate, 106) <> CONVERT(VARCHAR(10), '01/04/2010 12:00:00 AM', 106)
从slabratedeail中选择*转换(VARCHAR(10),Fromdate,106)转换(VARCHAR(10),'01/04/2010 12:00:00 AM',106)

您保存的时间是否包含毫秒?是否确实要从查询中排除一秒钟的时间?fromdate
列的
数据类型是什么?@gabykag.Petrioli其日期时间
=是相同的东西。唯一的区别是
是ANSI标准。这是否明确取决于OP使用的是
日期时间
还是
日期
/
日期时间2
。下面返回两个不同的日期<代码>设置语言意大利语;选择CAST('2010-04-01 12:00:00 AM'作为日期时间);选择CAST('2010-04-01 12:00:00 AM'作为DATETIME2)
然后我会说那是一个bug!
SELECT * FROM SlabRateDetail WHERE CONVERT(VARCHAR(10), Fromdate, 106) <> CONVERT(VARCHAR(10), '01/04/2010 12:00:00 AM', 106)