数値を日付に変換するにはどうすればよいですか?
例えば:-
数字を 31 として入力したいのですが、どの月の日付が 31 であるかが検索され、現在の年は以下のように表示されます。
Date Day
31-01-2013 Thursday
31-03-2013 Sunday
また、数値を日付に変換するにはどうすればよいですか。
数値を日付に変換するにはどうすればよいですか?
例えば:-
数字を 31 として入力したいのですが、どの月の日付が 31 であるかが検索され、現在の年は以下のように表示されます。
Date Day
31-01-2013 Thursday
31-03-2013 Sunday
また、数値を日付に変換するにはどうすればよいですか。
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 |
関数を使用してday()
、日付列の日を指定した値と比較できます。datename()
次に、平日を取得するために使用できます。
declare @val int = 31
select dt, datename(dw, dt)
from yourtable
where day(dt) = @val
デモで SQL Fiddle を参照してください
これがまさにあなたがやりたいことかどうかはわかりませんが、最初にカレンダー テーブルを作成すると、それは非常に単純なクエリになります。
select [Date], [Day]
from dbo.Calendar
where YearNumber = 2013 and DayNumber = 31