• ベストアンサー

日付型→文字列

SQLServer2005の環境にて、 日付型の項目(YYYY/MM/DD HH:MM:SS)から日付のみを抽出したい場合、 現在SUBSTRING(CONVERT(VARCHAR,AA),1,10) と変換を行っているのですが、結果が「MM DD YYYY」となってしまいます。 「YYYY/MM/DD」の形式で取得するにはどのようなSQL文にすればよろしいのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

これだけで大丈夫だったりしませんか?↓  CONVERT(char,日付,111)  →"2002/08/31" ちなみに現状はこんな感じですかね?↓  CONVERT(char,日付,11)   →"02/08/31"

0000hiro
質問者

補足

現在何も変更しないで表示されている値は 「05 9 2006」です。 上記「CONVERT(char,日付,111)」に変更して正しく表示されるようになりました。 ありがとうございました。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

SQLServerのdatetime型の既定値は mon dd yyyy hh:miAM です。 そのままSUBSTRINGで抜き出せばMM DD YYYYになります。 日付型データを文字列として値を返すのは CONVERT(char,日付型フィールド,111) でYYYY/MM/DDの形式の文字列になります。

関連するQ&A

  • 【Access】できればクエリにて 日付(yyyy/mm/dd)+時間(hh:mm)の計算 

    いつもお世話になります。 フィールド「日付」:日付 (S) ~YYYY/MM/DD形式~ と フィールド「時間」:時刻 (S) ~HH/MM形式~ があります。 これらを合算し、 (1)日付 (標準)  ~YYYY/MM/DD HH:MM:SS形式~ (2)日付 (標準?) ~YYYY/MM/DD HH:MM形式~ にしたいのですが、 レコードの更新欄ではどのようにビルドさせればよろしいでしょうか? 教えていただけますでしょうか? よろしくお願いします。

  • YYYYMMDDhhmmss形式の文字列を日付時刻に変換・計算する方法

    YYYYMMDDhhmmss形式の文字列を日付時刻に変換・計算する方法 お世話になっております。 今回の質問内容なのですが、 あるテーブルにYYYYMMDDhhmmss形式(varchar(14))の列がありまして、 この値の時刻計算を行いたいと思っております。 YYYY/MM/DD hh:mm:ss形式であれば、DATEADD関数で 計算が可能なのですが、やり方がわからず苦戦しております。 例えば1秒加算させたいと思い、以下のSQL文を実行してみたのですが、 SELECT DATEADD(second,1,(CONVERT(DATETIME,'20100312111111'))) 「文字列から日付/時刻に変換できませんでした。」というエラーが 発生してダメでした。 時刻部分だけ取り出して、それに時分秒を分ける「:」をつけて変換し 計算するという方法は極力避けたいと思っています。 何かいい方法がありましたら、ご教示のほどよろしくお願い致します。

  • 日付形式の変換

    はじめまして Perlで日付形式の変換をしたいと思っています。 RFC1123形式(2 Mar 2006 04:28:25 -0800)から yyyy/mm/dd hh:mm:ssの形式に変換したいのです。 色々と調べましたが、適当なヒントがあるところがありません でした。 どうぞ、関連サイトでも構いませんので、ご回答お願いいたします。

    • ベストアンサー
    • Perl
  • Accessの日付フィールドデータの取得について。

    VbScriptでオブジェクトに、Accessの日付フィールドデータを取得するのですが、その際、 "YYYY/MM/DD HH:MM:SS" の形式で取得するにはどのようにしたらよいのでしょうか。 よろしくお願いします。

  • 日付型を編集したい

    お世話になります。 DateTime型のデータを 「YYYY/MM/DD HH:Mi」の形式で取得したいです。 また、「2005/07/01」の日付型データを上のように、 日時の形式で表示(2005/07/01 00:00)で 取得することはできるでしょうか? CONVERT関数だと思うのですが、 時分の取得方法がよくわかりません。 お知恵をお貸しください。

  • ACCESSの日付形式

    テーブルに日付形式のフィールドがあり、エクスポートすると、形式がyyyy/mm/dd hh:mm:ddになってしまいます。 yyyy/mm/dd形式でエクスポートするには、どのようにしたらよいでしょうか。 VBAのDocmd.TransferTextで行いたいと思います ちなみにAccess97です。 よろしくお願いします

  • ACCESS 日付型でEXCEL出力 

    日付/時刻型の項目に yyyy/mm/dd hh:mm:ss(2007/01/11 12:10:33)の形で入っているのですが、 以下のような処理でEXCELにエクスポートすると・・・ strSQL = "SELECT Time AS 日時 FROM T_TIME" Set qryBuf = CurrentDb.CreateQueryDef(Q_Time, strSQL) DoCmd.TransferSpreadsheet acExport, , Q_Time, txtFileName, True EXCELの表示は「2007/01/11」と表示されてしまいます。 表示形式を変更すれば「2007/01/11 12:10:33」で表示されるのですが その手間は省きたいと思っています。 一発で「yyyy/mm/dd hh:mm:ss」の形式で出力する方法は無いでしょうか?

  • SQLServerでの日付関連に関する事

    こんにちは、質問させてください。 今、以下の構成のテーブル(test_tbl)があるとします。 --------------------------- filed = type = size --------------------------- name = varchar = 512 hizuke = datetime = 8 address = varchar = 512 --------------------------- 今、ある期間に当てはまる人のデータを抽出するため 以下のSQL文を発行しています。 ------------------------------------ select, name, address, substring(convert(varchar, hizuke, 112), 1, 4) + '/' + substring(convert(varchar, hizuke, 112), 5, 2) + '/' + substring(convert(varchar, hizuke, 112), 7, 2) from test_tbl where substring(convert(varchar, hizuke, 112), 1, 4) + '/' + substring(convert(varchar, hizuke, 112), 5, 2) + '/' + substring(convert(varchar, hizuke, 112), 7, 2) between '1999/11/02' and '2003/02/16' ----------------------------------------------------- と記述しています。 このSQLだと関数などたくさん使用しており 時間がかかってしょうがありません。 ※特に日付関連の部分 なにかいいアドバイスがある方、宜しくお願い致します。

  • 一番古い更新日付をチェックする

    OS:RedHatLinuxES3.0 下記についてご存知お方がいらっしゃいましたら教えてください。 [file.log]と言うファイルがあります。 このファイルは、5MBになると、5MBに達した時の、年月日時分秒を付けたファイル名[file-YYYY_MM_DD-hh_mm_ss.log]になります。 また、このファイルは5世代管理とするので、[file.log]が一つ、残り4つは[file-YYYY_MM_DD-hh_mm_ss.log]となります。 そこで、質問ですが、この5つのファイルの中で一番古い更新日付を持つファイルのみを他のディレクトリにコピーしようと思っています。 つまり、[file-YYYY_MM_DD-hh_mm_ss.log]ファイル名の一番古い日付を持つファイルを選択したいのですが、いい方法がありましたら教えて下さい。

  • ACCESS日付形式について質問です。

    日付抽出条件を含んだフォームを作成したのですが、午前中までyyyy/mm/ddの形式で入力し、抽出できたのですが、今mm/ddの形式で入力しないと抽出できなくなりました。 変更をした覚えはないのですが・・・ yyyy/mm/ddで抽出できる方法を教えてください。 おねがいします。