2011-11-07 54 views
2

我寫了一個SQL選擇數據之間的日期和另一個。 基本問題是關於我想取得了一些選擇Sql服務器傳遞日期值作爲參數與轉換

明杆我的名字是date_tm和樣本數據這樣的日期格式:2011-04-04 00:30:19.107

我的SQL是這樣的:

DECLARE @Date_From DATETIME; 
DECLARE @Date_To DATETIME; 

SET @Date_From = CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120); 
SET @Date_To = CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120); 

select distinct no, lot 
from database.dbo.TblName 
Where Convert(varchar(10), Date_Tm, 120) Between '@Date_From' And '@Date_To'; 

我嘗試使用這個

Print(@Date_From); 
Print(@Date_To); 

的輸出是這樣的 「2011年11月6日12:00 AM」 調試它我不能轉換其alreadly ? 然後我用select語句這樣的測試:

的輸出是這樣的「2011-11-06」爲什麼它在這裏工作?

選擇的結果是什麼==」

話,我就在此日期格式 我嘗試直接解析在date_from和DATE_TO

where Convert(varchar(10), Date_Tm, 120) Between '2011-04-04' And '2011-04-04' 

大量的測試,我得到的期望是什麼

無論如何,我想要的是通過一系列日期獲取數據。我用這種轉換方法粉碎了我的腦袋==「

Plea我幫助我。

謝謝:

PS:請不要猶豫,以表明我的錯誤。我們都從錯誤中學習,併爲我可憐的英語感到遺憾。

問候:

LiangCk

回答

1

這是因爲你的聲明兩個變量作爲日期時間,而不是爲varchar(10)。 SQL會自動將其轉換回日期時間,因爲您的變量是日期時間。

DECLARE @Date_From VARCHAR(10); 
DECLARE @Date_To VARCHAR(10); 
+0

&%* @(%@)@@%我問一個愚蠢的問題...感謝Norlando 我只是改變了日期時間爲varchar(10)修復它 這樣的:DECLARE @Date_From VARCHAR (10); – Worgon

+0

@LiangCk,沒有問題,我只是一直犯下一個簡單的錯誤。 – norlando

相關問題