有沒有一種方法可以讓我在SQL日期中使用select語句顯示日期? 一樣,如果我選擇日期2013年1月15日從和2013年1月20日作爲對查詢將顯示如下:如何在SQL Server中選擇日期以顯示?
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
這是可能的嗎?
有沒有一種方法可以讓我在SQL日期中使用select語句顯示日期? 一樣,如果我選擇日期2013年1月15日從和2013年1月20日作爲對查詢將顯示如下:如何在SQL Server中選擇日期以顯示?
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
這是可能的嗎?
一個更好的辦法是寫的東西爲:
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這裏。
我不確定他是否有權訪問'sys',但它是很好的解決方案。 +1 – zhongxiao37
使用BETWEEN...AND
:
SELECT DateCol
FROM TableName
WHERE DateCol BETWEEN @FromDate AND @ToDate
ORDER BY DateCol
的可能DUP,如果我沒有的東西列有日期嗎?我仍然可以得到日期嗎? –
這取決於什麼數據類型在字段中。防爆。如果你有varchar你可以使用轉換爲日期時間,並在as @raging之間使用說。 http://technet.microsoft.com/pl-pl/library/ms187928%28v=sql.110%29.aspx – robertw
您可以使用強制轉換功能,但日期應採用正確的格式。嘗試從table_1中選擇cast(data_col作爲日期時間) –
下一個解決方案。我覺得更直觀
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
http://stackoverflow.com/questions/5125076/sql-query-to-select-dates-between-two-dates – zhongxiao37