dea*_*au5 6 sql database sybase mybatis
我是Sybase的新手,我正在编写一个查询,以便在指定日期之后以及指定日期之前返回结果.MM/DD/YYYY格式
目前我正在做..
SELECT *
From aTable
WHERE afterDate >= 08/07/2013
AND beforeDate <= 08/08/2013
Run Code Online (Sandbox Code Playgroud)
我正在收回记录,但由于我是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)
Run Code Online (Sandbox Code Playgroud)
您可以通过运行以下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)
Run Code Online (Sandbox Code Playgroud)
小智 7
对于 sybase 中的任何日期时间字段,有一个更直接的方法,而不是通过 convert 函数。
SELECT *
From aTable
WHERE afterDate >= '2013-08-07'
AND beforeDate <= '2013-08-08'
Run Code Online (Sandbox Code Playgroud)
日期必须采用“YYYY-MM-DD”形式
如果要添加时间,可以将其与日期一起包含在内。日期和时间必须用 T 分隔。
任何日期时间字段都可以使用格式'YYYY-MM-DDTHH:MM:SS'直接使用
使用这些功能太长了。没有人需要火箭筒来射松鼠!:)