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