DB2日期和时间

转贴自 http://www.ibm.com/developerworks/jp/db2/library/dataserver/techdoc/daytime.html

可取的日期,时刻,timestamp
YEAR (current timestamp)
MONTH (current timestamp)
DAY (current timestamp)
HOUR (current timestamp)
MINUTE (current timestamp)
SECOND (current timestamp)
MICROSECOND (current timestamp)

DATE (current timestamp)
TIME (current timestamp)

也可用英语进行日期时刻的计算
current date + 1 YEAR
current date + 3 YEARS + 2 MONTHS + 15 DAYS
current time + 5 HOURS - 3 MINUTES + 10 SECONDS

也可计算两个日期间的相差日数
days (current date) - days (date('1999-10-22'))

日期时刻的值与其它文本进行连接时,需要先将值转换为字符串
char(current date)
char(current time)
char(current date + 12 hours)

字符串转换为日期时刻的值时
TIMESTAMP ('2002-10-20-12.00.00.000000')
TIMESTAMP ('2002-10-20 12:00:00')
DATE ('2002-10-20')
DATE ('10/20/2002')
TIME ('12:00:00')
TIME ('12.00.00')
TIMESTAMP()、DATE()、TIME()函数允许的形式除了这些还有很多,

两个timestamp之间可能会有时间差,DB2准备一个内置函数TIMESTAMPDIFF(),但闰年不在计算之内
一个月看作是30天,所以返回值是一个近似值。两个时间差越小取值越精确
timestampdiff (<n>, char(
      timestamp('2002-11-30-00.00.00')-
      timestamp('2002-11-08-00.00.00')))
参数<n>表示时间单位。
    * 1 = 秒小数部
    * 2 = 秒
    * 4 = 分
    * 8 = 時間
    * 16 = 日
    * 32 = 週
    * 64 = 月
    * 128 = 四半期
    * 256 = 年

SQL Date及Time函数
DAYNAME引数のday部分に該当する曜日名(たとえば、Friday)の入った大文字小文字混成文字列を返します。
DAYOFWEEK1〜7の範囲の整数値として引数の曜日を返します。1は日曜日を表します。
DAYOFWEEK_ISO1〜7の範囲の整数値として引数の曜日を返します。1は月曜日を表します。
DAYOFYEAR1〜366の範囲の整数値として、引数のなかの日(1年のうちの何日目であるか)を返します。
DAYS日付の整数表現を返します。
JULIAN_DAYBC(ユリウス暦開始)から引数で指定した日付値までの日数を表す整数値を返します。
MIDNIGHT_SECONDS午前零時から引数で指定した時間値までの秒数を表す0〜86 400の範囲の整数値を返します。
MONTHNAME引数のmonth部分に該当する月名(たとえば、January)の入った大文字小文字混成文字列を返します。
TIMESTAMP_ISO日付、時刻またはタイムスタンプ引数に基づいてタイムスタンプ値を返します。
TIMESTAMP_FORMATキャラクター・テンプレートを使って解釈された文字列からタイムスタンプを返します。
TIMESTAMPDIFF2つのタイムスタンプ間の差に基づいて、最初の引数により定義される型の推定時間差を返します。
TO_CHARキャラクター・テンプレートを使ってフォーマットされたタイムスタンプの文字表現を返します。TO_CHARは、VARCHAR_FORMATの同義語です。
TO_DATEキャラクター・テンプレートを使って解釈された文字列からタイムスタンプを返します。TO_DATEは、TIMESTAMP_FORMATの同義語です。
WEEK1〜54の範囲の整数値として、引数の週(1年のうちの何週目か)を返します。1週は日曜日に始まります。
WEEK_ISO1〜53の範囲の整数値として、引数の週(1年のうちの何週目か)を返します。

日期形式变更
DEFテリトリー・コードに対応する日付時刻形式を使用します。
EURIBM標準の欧州日付時刻形式を使用します。
ISO国際標準化機構(International Standards Organization)の日付時刻形式を使用します。
JIS日本工業規格の日付時刻形式を使用します。
LOCデータベースのテリトリー・コードに関連付けされたローカルの日付時刻形式を使用します。
USAIBM標準の米国日付時刻形式を使用します。

Windows上でデフォルトの形式(YYYY-MM-DD)をISOに変更するには、次の手順を実行してください。

  1. コマンド行で、現在のディレクトリーをsqllib/bndに変更してください。

    例:
    On Windows:c:/program files/IBM/sqllib/bnd
    On UNIX:/home/db2inst1/sqllib/bnd
  2. SYSADM権限をもつユーザーとしてオペレーティング・システム・シェルからデータベースに接続してください。

    db2 connect to DBNAME 
    db2 bind @db2ubind.lst datetime ISO blocking all grant public

    (DBNAMEとISOには、実際のデータベース名と希望する日付形式をそれぞれ挿入してください。)

これで、データベースはISO日付形式を使用します。

values current date 
1
----------
2003-05-30

1 record(s) selected.



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值