Ive列CREATEDDATE(DATETIME)我需要找到两个日期之间的所有行 $ startDate $ endDate格式('d / m / Y')?
SELECT * FROM TABLE
WHERE CREATEDDATE >= CONVERT(DATETIME, $startDate, 103)
AND CREATEDDATE <= CONVERT(DATETIME, $endDate, 103)
答案 0 :(得分:2)
这很简单,可以通过谷歌搜索找到。
在问问题之前,你应该首先谷歌..
Select * From Tbl where CREATEDDATE between $date1 and $date2
如果$ date1为varchar
,则必须使用CONVERT(DATETIME, $date1, 103)
(对于'd / m / y')
对于sql中的datetime转换,您可以参考this link..
以下是解决方案:
答案 1 :(得分:1)
sqlfiddle中的真正问题是你在变量声明中输入字符串,但sql语句:
declare @FromDate datetime = '11/03/2013' --here a type casting!!
declare @ToDate datetime = '12/03/2013'
然后这没有效果:
xCreatedDate < convert(datetime,@ToDate,103) --@toDate is yet a date!!
要修复,请在变量声明中将datetime更改为日期:
declare @FromDate varchar(10) = '11/03/2013' --here without casting!!
declare @ToDate varchar(10) = '12/03/2013'
答案 2 :(得分:0)
select CREATEDDATE from table where CREATEDDATE BETWEEN $date1 AND $date2
或者您可以使用
select CREATEDDATE from table where CREATEDDATE > $date1 AND CREATEDDATE < $date2