我有以下数据:
StartDate FinishDate Details
09/10/2013 11/10/2013 xxx
14/10/2013 13/10/2014 Taking a year off
在编辑此数据时,我检查日期范围的内容不重叠。
我正在通过 ado 从访问中运行 SQL 查询来执行此操作;我将输入的日期输入数据库格式(即'mm/dd/yyyy');这是我得到的查询:
SELECT Count(*)
FROM MarkerAbsence
WHERE PerID = 718 AND
('10/09/2013' BETWEEN StartDate AND FinishDate OR
'10/11/2013' BETWEEN StartDate AND FinishDate)
如果数据有效,则应返回零记录;但是它不返回 1(是上面列出的第二个记录),因此似乎将 '10/11/2013' 解释为 dd/mm/yyyy 而不是 mm/dd/yyyy。
然而,如果我在 SMO 中这样做:
DECLARE @datevar datetime2 = '31/12/2008';
SELECT @datevar;
我得到:
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.
尽管
DECLARE @datevar datetime2 = '12/31/2008';
SELECT @datevar;
返回
2008-12-31 00:00:00.0000000
那么为什么我会遇到这个问题,我该如何解决呢?