10

私は現在 Oracle を使用していますが、ほとんどの SQL はデータベースに依存しません。1 つの例外は、MSSQL で失敗する CURRENT_TIMESTAMP です。これについても、より移植性の高い構文に移行することは可能ですか?

4

2 に答える 2

9

ドキュメントによると、次のベンダーがサポートしていCURRENT_TIMESTAMPます。

要約CURRENT_TIMESTAMPすると、SQL 標準に記載されている方法であり、その要約を以下に示します。DB に依存しない SQL を探している場合、実際にできる最善の方法は標準に固執することですが、これは何かが完全に機能することを保証するものではありませんDB に依存しない:

6.32 <日時値関数>

関数

datetime 型の値を生成する関数を指定します。

フォーマット

<current date value function> ::= CURRENT_DATE`
<current time value function> ::= CURRENT_TIME [ <left paren> <time precision> <right paren> ]
<current local time value function> ::= LOCALTIME [ <left paren> <time precision> <right paren> ]
<current timestamp value function> ::= CURRENT_TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]
<current local timestamp value function> ::= LOCALTIMESTAMP [ <left paren> <timestamp precision> <right paren> ]

一般的なルール

1) CURRENT_DATE、CURRENT_TIME、および CURRENT_TIMESTAMP は、それぞれ現在の日付、現在の時刻、および現在のタイムスタンプを返します。時刻とタイムスタンプの値は、SQL セッションの現在のデフォルトのタイム ゾーン ディスプレイスメントと等しいタイム ゾーン ディスプレイスメントで返されます。

于 2013-12-12T11:36:04.527 に答える