2006年5月16日火曜日

MS SQL Serverで日付型の形式を「yyyy-mm-dd」に変換する


SQLサーバーにて、日付型のカラムから値を取り出すと

「05 15 2006 6:00PM」

というような形式で値が出てくることがある。これが非常に迷惑。
「yyyy-mm-dd」形式でないとアプリケーション側での扱いに困るのだ。

これってWindows自体の時計の設定に依存してたような記憶があるんだけど、とりあえず今回はSQLで日付形式を変換した。

こんな感じ。




select
   *,
   convert(varchar,REGIDATE,120) as REGIDATE 
   from TABLE;




120というのはODBC標準形式。つまり「yyyy-mm-dd hh:mi:ss」だ。
地域別に数字があるので、お好みで使い分けましょう。(あまり使う機会もないと思うけど。。)

2 件のコメント:

  1. 私も同じケースで悩んでいたのですが、解決したので報告します。
    php.iniの「mssql.datetimeconvert」を「Off」にすると「ODBC標準形式」、
    「On」にすると「MSSQL標準」で取得出来るそうです。
    参考:http://php.mirror.camelnetwork.com/manual/ja/ref.mssql.php

    返信削除
  2. びでおさん、コメントありがとうございます!
    なるほどー、php.iniで設定できるんですね。
    これで無駄なコード書かなくて済みますね。どうもありがとうございました!

    返信削除