-3
A
答えて
0
DATEADD()
関数は日付から指定された時間間隔を加算または減算します。
構文:DATEADD(日付要素、数字、日付)
qq = quarter,
yy = Year
あなたの質問に日付フィールドは0として代表的なものであるか、-1日付要素構文で、 SQLサーバは、1900年から1901年として0を関連-01 00:00:00.000 0 1899年12月31日00の前に1日として -1:00:00.000
よう
select dateadd(qq,466,'1900-01-01 00:00:00.000') is the same as
SELECT DATEADD(qq, DATEDIFF(qq ,0, GETDATE()),0)
OR
SET @InsertDate = GETDATE()
SELECT DATEADD(qq, DATEDIFF(qq ,0, @InsertDate),0)
今、466は関数のdatediff(qq,0,GETDATE())
セクションによって導出されます。カレンダー年によると、1900-01-01 00:00:00.000 の間に466のクォーターがあります。
ですので、@InsertDate
の値が2016-07-05 00:00:00.000
の場合は、でが得られます。
1
を説明することができ、SQLクエリ
SELECT @day = DATEADD(qq, DATEDIFF(qq ,0, @InputDate),0)
です:https://stackoverflow.com/a/3945396/6492765
基本的に、SELECTは変数の値を設定するT-SQLの方法であり、魔法はセレクティブにありますgをジョインや他の選択概念から直接変数に変換する。唯一の1つの変数に1つの値を割り当てると、それはあなたのケースでは、となり、SET異ならない:あなたは、変数@dayに現在の四半期の最初の日を割り当てる
SET @day = DATEADD(qq, DATEDIFF(qq ,0, @InputDate),0)
0
関連する問題
- 1. 別のSELECTステートメント内のSELECTステートメント
- 2. MSSQLのMySQL CREATEステートメント:KEYキーワード?
- 3. Selectステートメント
- 4. whileステートメント内のselectステートメント
- 5. selectステートメントのストアドプロシージャ
- 6. モバイルデバイスのselectステートメント
- 7. mySqlのSelectステートメント
- 8. Selectステートメントのタイプ
- 9. MSSQL SELECTカスタム行を追加
- 10. VB.net DataTable selectステートメント
- 11. SQL insert selectステートメント
- 12. SQLフィルターSELECTステートメント
- 13. T-SQL SELECTステートメント
- 14. SQlite concat selectステートメント
- 15. MySQL 5.6 Selectステートメント
- 16. MySQL SELECTステートメント(JOIN)
- 17. MYSQL SELECTステートメント
- 18. SQLストアドプロシージャselectステートメント
- 19. selectステートメントのSQLサーバーサブクエリ
- 20. SELECTステートメントのサブクエリ(MySQL)
- 21. selectステートメントのCASE mysql
- 22. mysql selectステートメントのサブクエリ
- 23. selectステートメントのsqlクエリ
- 24. SELECTステートメントの作成
- 25. SELECTステートメントの番号
- 26. selectステートメントのHQLサブクエリ
- 27. Selectステートメントでのケース
- 28. LIKE内のSELECTステートメント
- 29. WHERE句のMSSQL SELECT文のエラー
- 30. 3つのSELECTステートメントを含むSQLステートメント
私たちはすべてそれを説明できると確信しています。あなたの質問は何ですか?それはあなたが期待しない出力を与えていますか?それが何かを見るためにいくつかのサンプルデータでテストしましたか? –
はい私はそれをテストし、それは完全に動作します。私はこの声明の背後にある論理を理解できない –