2
我在查找表中的today's date
和given date
之間的日期差異。一些行有1 date
,而其他行有2 dates
(採取更早的日期)。我試着用動態的變量和臨時表,但仍然沒有工作日期區別查找器
declare @t nvarchar(1000)
set @t = ' select a.Availability from [ScrappedData_Regina] a'
if(len(@t) < = 55 ) -- for single date case
begin
SELECT * INTO #result1
FROM
(
select distinct [Product Name],[SKU],DATEDIFF(day,cast(right([Availability],10) as date),cast(GETDATE() as date)) as [Delivery Date]
from [ScrappedData_Regina]
where [Availability] like '%none%' -- total 158 products
)
end
else -- for two date case
begin
SELECT * INTO #result2
FROM
(
declare @t date
set @t = '
select SUBSTRING(Availability, PATINDEX('% [0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]%', [Availability]), 11) as [Date Part] from [ScrappedData_Regina] '
-- extracts date part from a column
select distinct [Product Name],[SKU],DATEDIFF(day,cast(@t as date),cast(GETDATE() as date)) as [Delivery Date] from ScrappedData_Regina
) -- i want to pass the date part in this select statement
選擇*到結果 從(SELECT * FROM#RESULT1工會SELECT * FROM#RESULT2)
select *from result
第一個查詢會給出結果爲
而且我也希望第二個查詢的結果也是兩個日期的情況。
最後一個表中既包括結果
您是否考慮過使用帶'date'類的列來存儲日期? –
@sql_lover:無法理解您的要求,但下面的查詢可能會對您有所幫助。 (可用性,PATINDEX('%[0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9] [0-9] [0-9]%',Availability),11)from test' 對於Date的最後一次出現'select reverse(substring(reverse(Availability),0,11))from test' – Arvind