2013-01-16 163 views
0

如何將數字轉換爲日期?如何將數字轉換爲日期

例如: -

我想輸入數字爲31,它應該找到所有幾個月日期31,並應當出示把如下本年度。

Date   Day 
31-01-2013  Thursday 
31-03-2013  Sunday 

我應該如何將數字轉換爲日期。

+0

爲什麼你的問題了標籤[SQL服務器2008]?你的問題有點不清楚,在你的問題中沒有提到SQL Server。 –

+0

@MartinLiversage標籤讓人們知道他們正在使用哪個數據庫。 DateTime函數爲每個數據庫更改。 – Taryn

回答

0

我不知道如果這正是你想做的事,但如果你創建第一calendar table那麼它是一個非常簡單的查詢:

select [Date], [Day] 
from dbo.Calendar 
where YearNumber = 2013 and DayNumber = 31 
0

您可以使用day()功能白天比較在您的日期列中添加您提供的值。然後你可以使用datename()拿到平日:

declare @val int = 31 

select dt, datename(dw, dt) 
from yourtable 
where day(dt) = @val 

SQL Fiddle with Demo

0

SQL Fiddle

MS SQL Server 2008的架構設置

查詢1

declare @Day int; 
set @Day = 31 

select D.D, 
     datename(weekday, D.D) as DOW 
from (values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) as M(M) 
    cross apply (select dateadd(day, 
           @Day - 1, 
           dateadd(month, 
             M.M - 1, 
             dateadd(year, 
               year(getdate()) - 1, 
               cast('00010101' as date))))) as D(D) 
where day(D.D) = @Day 

Results

|   D |  DOW | 
-------------------------- 
| 2013-01-31 | Thursday | 
| 2013-03-31 | Sunday | 
| 2013-05-31 | Friday | 
| 2013-07-31 | Wednesday | 
| 2013-08-31 | Saturday | 
| 2013-10-31 | Thursday | 
| 2013-12-31 | Tuesday |