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