dea*_*au5 6 sql database sybase mybatis
我是Sybase的新手,我正在编写一个查询,以便在指定日期之后以及指定日期之前返回结果.MM/DD/YYYY格式
目前我正在做..
SELECT * 
    From aTable
      WHERE afterDate >= 08/07/2013
        AND beforeDate <= 08/08/2013
我正在收回记录,但由于我是Sybase的新手,我想确保Sybase正确地解释这些日期.
他们的在线文档对于这类事情的基本解释非常糟糕!任何人都可以确认我的工作是否有效,或者是否需要在日期之前进行一些格式化?
two*_*rse 12
您需要将日期转换为DATETIME并告诉sybase确保格式是什么.
根据这个文档,MM/DD/YYYY的代码是101,所以像这样:
SELECT * 
FROM aTable
WHERE afterDate >= CONVERT(DATETIME,'08/07/2013',101)
      AND beforeDate <= CONVERT(DATETIME,'08/08/2013',101)
您可以通过运行以下select语句来查看差异:
SELECT CONVERT(DATETIME,'08/07/2013',101)  --MM/DD/YYYY (2013-08-07 00:00:00.000)
SELECT CONVERT(DATETIME,'08/07/2013',103)  --DD/MM/YYYY (2013-07-08 00:00:00.000)
小智 7
对于 sybase 中的任何日期时间字段,有一个更直接的方法,而不是通过 convert 函数。
SELECT * 
From aTable
  WHERE afterDate >= '2013-08-07'
    AND beforeDate <= '2013-08-08'
日期必须采用“YYYY-MM-DD”形式
如果要添加时间,可以将其与日期一起包含在内。日期和时间必须用 T 分隔。
任何日期时间字段都可以使用格式'YYYY-MM-DDTHH:MM:SS'直接使用
使用这些功能太长了。没有人需要火箭筒来射松鼠!:)