この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 10825|答える: 0

[出典] 実用的なSQL文:日付推定

[リンクをコピー]
掲載地 2014/11/26 15:53:01 | | |

デート@dt宣言する
SET @dt=GETDATE()

@number intを宣言
集合 @number=3

--1. 年の初日または最終日の日付を指定してください
--A. 新年の初日
SELECT Co nVERT(char(5),@dt,120)+ '1-1 '

--B. 年の最後の日
SELECT Co nVERT(char(5),@dt,120)+ '12-31 '


--2. 指定された日付がある四半期の初日または最終日
--A. 四半期の初日
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(Quarter,@dt)*3-Mo nth(@dt)-2,
@dt),
120)+ '1 ')

--B. 四半期最終日(事件判決)
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(Quarter, @dt)*3ヶ月 nth(@dt),
@dt),
120)
+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
それから『31』『さか30』が終わる)

--C. 四半期の最終日(ダイレクトプッシュアルゴリズム)
SELECT DATEADD(Day,-1,
Co nVERT(char(8),
DATEADD(Mo nth,
1+DATEPART(Quarter,@dt)*3-Mo nth(@dt),
@dt),
120)+ '1 ')


--3. 指定された日付がある月の初日または最終日
--A. 月の初日
SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')

--B. 月の最終日
SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ')

--C. 月末の日(誤った方法が使われやすい)
SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt))


--4. 指定された日付がある曜日のいずれか
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)


--5. 指定された日付がある曜日のいずれかの曜日
--ある。  日曜日を週の最初の日として
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)

--B。  月曜日は週の初日です
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)






先の:sqlserverが「%keyword%」のような扱いをするときのインデックス利用の問題
次に:ORACLE 11g 新機能 - DDLロックがDMLロックを待つことを可能にします
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com