0

数値を日付に変換するにはどうすればよいですか?

例えば:-

数字を 31 として入力したいのですが、どの月の日付が 31 であるかが検索され、現在の年は以下のように表示されます。

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

また、数値を日付に変換するにはどうすればよいですか。

4

3 に答える 3

0

SQL フィドル

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

結果

|          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 |
于 2013-01-16T19:02:19.050 に答える
0

関数を使用してday()、日付列の日を指定した値と比較できます。datename()次に、平日を取得するために使用できます。

declare @val int = 31

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

デモで SQL Fiddle を参照してください

于 2013-01-16T18:37:12.713 に答える
0

これがまさにあなたがやりたいことかどうかはわかりませんが、最初にカレンダー テーブルを作成すると、それは非常に単純なクエリになります。

select [Date], [Day]
from dbo.Calendar
where YearNumber = 2013 and DayNumber = 31
于 2013-01-16T18:29:36.100 に答える