我有办法在sql日期中使用select语句来显示日期吗? 就像我从2013年1月15日和2013年1月20日选择2013年1月15日的日期一样,该查询将显示以下内容:
DATE
2013/01/15 12:00
2013/01/16 12:00
2013/01/16 12:00
2013/01/17 12:00
2013/01/18 12:00
2013/01/19 12:00
2013/01/20 12:00
这可能吗?
答案 0 :(得分:2)
更好的方法是写一些东西:
DECLARE @from DATE, @to DATE;
SELECT @from = '2013-01-15' , @to = '2013-01-20';
SELECT DATEADD(DAY, n-1, @from)
FROM
(
SELECT TOP (DATEDIFF(DAY, @from, @to)+1) ROW_NUMBER()
OVER (ORDER BY s1.[object_id])
FROM sys.all_objects AS s1
CROSS JOIN sys.all_objects AS s2
) AS x(n);
点击此处Demo。
答案 1 :(得分:1)
使用BETWEEN...AND
:
SELECT DateCol
FROM TableName
WHERE DateCol BETWEEN @FromDate AND @ToDate
ORDER BY DateCol
答案 2 :(得分:1)
下一个解决方案。我认为更直观
declare @table table (d datetime)
declare @start datetime = '2014-01-01'
declare @stop datetime = '2014-01-21'
while @start <= @stop
begin
insert into @table (d)
values (@start)
set @start = DATEADD(day, 1, @start)
end
select * from @table