yyyy/mm/dd または yyyy-mm-dd フォーマットの日付は、date_order 設定がされているかどうかにかかわらず、日付として常に正確に認識されます。セパレータとして '/' または '-' を使う代わりに、他の文字を使うこともできます (たとえば、'?'、スペース、',' など)。別のユーザが異なる date_order 設定をしているコンテキストの中では、このフォーマットを使うようにしてください。たとえば、ストアド・プロシージャでは、あいまいさのない日付フォーマットを使えば、ユーザの date_order 設定に従った日付が間違って解釈されることはありません。
また、hh:mm:ss:ssss の形式の文字列は、あいまいさのない時刻として解釈されます。
日付と時刻を組み合わせる場合は、あいまいさのない日付と時刻を組み合わせることにより、結果的にあいまいさのない日付/時刻として評価されます。yyyy-mm-dd hh.mm.ss.sss の形式もあいまいさのない日付/時刻値です。ピリオドは、日付と組み合わせた時刻に対してのみ使用できます。
他のコンテキストでは、より柔軟性のある日付フォーマットを使用できます。SQL Anywhere は、広い範囲の文字列を日付として解釈します。この解釈は、date_order データベース・オプションに左右されます。date_order データベース・オプションは、値に MDY、YMD、DMY を取ります (SET OPTION 文を参照してください)。たとえば、次の文は、date_order オプションを DMY に設定します。
SET OPTION date_order = 'DMY' ; |
デフォルトの date_order 設定は YMD です。ODBC ドライバは、接続されるときに必ず date_order オプションを YMD に設定します。値は SET TEMPORARY OPTION 文を使って変更できます。
データベース・オプション date_order は、文字列 10/11/12 がデータベースで 2010 年 11 月 12 日、2012 年 10 月 11 日、または 2012 年 11 月 10 日のいずれとして解釈されるのかを決定します。日付文字列の年、月、日を記号 (たとえば /、-、またはスペース) で区切り、date_order オプションで指定されている順序で表してください。
年は 2 桁または 4 桁で指定できます。nearest_century オプションの値は、2 桁の年数の解釈に影響します。nearest_century 未満の値には 2000 が追加され、その他のすべての値には 1900 が追加されます。このオプションのデフォルト値は 50 です。そのため、デフォルトで 50 は 1950、49 は 2049 と解釈されます。
月は月の名前または数字です。時間と分はコロンで区切りますが、文字列のどこにでも置けます。
年は常に 4 桁フォーマットで指定することをおすすめします。
date_order の適切な設定を使った次の文字列は、すべて有効な日付です。
99-05-23 21:35 99/5/23 1999/05/23 May 23 1999 23-May-1999 Tuesday May 23, 1999 10:00pm |
文字列に部分的な日付指定だけがある場合、デフォルト値を使って日付が満たされます。次のデフォルトを使います。
年 今年
月 デフォルトなし
日 1 (月のフィールドに対して便利です。たとえば、1999 年 5 月は、日付 1999-05-01 00:00 となります)
時、分、秒、秒以下 0
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |