我再次无法将查询从访问权转换为SQL Express:
SELECT Sum(T0021_Omzet_prog) AS Expr1
FROM T0021_offertes
WHERE (((T0021_offertes.[T0021_dd_uitvoer])>=#6/1/2013# And (T0021_offertes.[T0021_dd_uitvoer])<#7/1/2013#));
任何原因导致错误“#附近的语法不正确”?
我的桌子不是空的:
1-1-1900是一个占位符,我的查询每个月都会循环显示所以是的,有适合的日期。
答案 0 :(得分:1)
您应该将#替换为'
SELECT SUM(T0021_Omzet_prog) AS Expr1
FROM T0021_offertes
WHERE ( T0021_offertes.[T0021_dd_uitvoer] >= '2013/06/01'
AND T0021_offertes.[T0021_dd_uitvoer] < '2013/07/01'
) ;
但是,这取决于datatype
,T0021_offertes.[T0021_dd_uitvoer]
字段的T0021_offertes.[T0021_dd_uitvoer]
是什么?
编辑:使用
之间的查询SELECT SUM(T0021_Omzet_prog) AS Expr1
FROM T0021_offertes
WHERE T0021_offertes.[T0021_dd_uitvoer] BETWEEN '06/01/2013 00:00:00'
AND '07/01/2013 00:00:00'
上面的日期格式:dd / mm / yyyy,所以这是1月6日 - &gt; 1月7日,或者你需要6月1日 - &gt; 7月1日?
答案 1 :(得分:0)
您需要使用以下表示法,因为每个其他日期格式都可能出现错误,具体取决于SQL Server的文化设置(我们甚至经历过在Management Studio中执行查询将'2013/06/01'解释为6月1日,同一台服务器上的存储过程解释了与1月6日相同的字符串):
WHERE (... >= '20130106 00:00:00' AND ... < '20130107 00:00:00')
请注意,当您未明确指定时间时,SQL Server会将时间解释为“午夜”,因此上述查询等同于:
WHERE (... >= '20130106' AND ... < '20130107')
实际上,这可以转换为
WHERE ... BETWEEN '20130106' AND '20130107'