• ベストアンサー

DATETIME型への変換

2つの文字列、日付をあらわすCHAR(8)と時刻をあらわすCHAR(6)の変数をDATETIME型に変換する方法をご教授いただけますでしょうか?

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

  • ベストアンサー
  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.2

すみません。datetime型に変換している事を失念していました。 CONVERT(datetime,@SysDate +' ' + SUBSTRING(@SysTime,1,2) + ':' + SUBSTRING(@SysTime,3,2) + ':' + SUBSTRING(@SysTime,5,2),120) となります。

kachimi
質問者

お礼

やはり時間はこのように操作しなければいけないのですね・・・ 本当にありがとうございました。

その他の回答 (1)

  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.1

CONVERT(datetime,日付,112(変換スタイル)) 例)112:YYYYMMDD 111:YYYY/MM/DD CONVERT(datetime,時刻,8(変換スタイル))) 例)8:hh:mm:ss CONVERT(datetime,日付 + 時刻,120(変換スタイル))) 例)120:yyyy-mm-dd hh:mi:ss です。

kachimi
質問者

補足

@SysDate = '20050222' @SysTime = '123456' の場合 CONVERT(datetime,@SysDate + @SysTime,120) で行なった場合 「構文エラー。文字列から日付/時刻に変換できませんでした。」となってしまいます。 CONVERT(datetime,@SysDate,111) はOKでした。

関連するQ&A

  • DateTime型同士の足し算をするにはどうすれば良いでしょうか?

    DateTime型同士の足し算をするにはどうすれば良いでしょうか? DateTime型の変数dに日付のみ、tには時刻のみが入っているとして、これらを加算するにはどうすれば良いでしょうか? どうぞよろしくお願いします。

  • yyyy/M/dをyyyy/MM/ddに変換

    SQLServer 2005にて文字列型に入っている日付データの変換を行いたいと思っています。 現状yyyy/M/d(2010/1/1)のようになっているのをyyyy/MM/dd(2010/01/01)に変換したい のですが方法が分かりません。 SELECT CONVERT(DATETIME,(CONVERT(VARCHAR(10),テーブルの値)),120) FROM テーブル名 とするとCHAR データ型から DATETIME データ型への変換の結果が日付/時刻の値の範囲外です。 というエラーになっていまいます。どういった方法なら実現できるのでしょうか。 すみませんがご教授ください。 宜しくお願い致します。

  • datetime型でNULL値を入れたい。

    現在SQLserver上で、、CSVを一時テーブルに保管し、ある条件に合致する行のみTBLに追加するというストアドを書いています。そのTBLには「datetime型」の列があります。 この作業で、2点問題が発生しています。 (1)CSVファイルから一時テーブルにデータを入れようとすると、datetime列がNULLの場合、型の不一致でエラーが発生します。 (2)上記において、一時テーブルの型をとりあえずvarcharにしておくと入れれるのですが、TBLに追加しようとする際、「convert(datetime,変数)」としているのですが、上手くキャストしてくれません。(「文字列から日付への変換に失敗しました」のような文がでます) どのようにすれば、NULLでもdatetimeに入れられるのでしょうか?教えてください。

  • DateTimeを最初からString型にする方法

    DateTimeを最初からString型にする方法 こんにちは。C#のキャストについてお教え頂けませんでしょうか。 下記はファイルの作成日を取得し、それをstring型に変換しています。 FileInfo fi = new FileInfo(FILE); DateTime CreationTime = fi.CreationTime; string CreationTime2 = CreationTime.ToShortDateString(); DateTime型の変数に情報を格納した後に、String型の変数にキャストした情報を格納しています。 これでは二度手間なので、一度でできる方法はないでしょうか? 下記のコードは動きませんが、やりたいのは下記のようなことです。 String CreationTime = (string)fi.CreationTime; 最終的に何がしたいかというと ・データベースよりデータを取得しDataSetに格納 ・データセットの日付列の値を取得。日付列はvarchar型です。 ・日付列の値をstring型変数に格納 ・fi.CreationTimeで取得した日付とDataSetで取得した日付を比較 ・以上のような事をしたいと思っています。よってCreationTimeをString型に変換したいです 宜しくお願い致します!

  • VC++ DateTimeを使った現在時刻取得

    VC++(CLI)で、現在時刻をstd::string文字列として、取得しようとしています。 時刻取得に、DateTime::ToStringを使うと、System::String でしか取得できません。 DateTime dt = DateTime::Now; String^ st= dt.ToString("HH:mm:ss");                  ↑この形式で、std::string文字列を取り出したい。 System::String から std::stringへの変換は、単純なキャストではなく変換処理が必要なので、他の方法を探しています。 他に思いつくのは、標準関数のtime.h localtimeから変換する方法くらいですが、他にstd::stringで必d家を取得する方法があれば教えてください。 環境: Win7 VC++2010 Express

  • MySQLで日時データをdatetime型に変換

    現在、MySQLにて日時情報を文字列として格納しているのですが、 日時の計算を行うために、datetime型に変換した上で 格納しなおしたいと考えています。 どのようにすれば良いでしょうか? よろしくお願い致します。

  • VB.NET DateTimeの型について

    こんにちは。 DateTime型の変数にNothingを指定すると、「#12:00:00 AM#」という値が入ってしまいます。 DateTime型の変数にNothingを指定することはできないのでしょうか? 又、DBの日付型と同じくNullを扱うことはできないのでしょうか? ご存知の方がいらっしゃいましたら、お教え願います。

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

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

  • DateTime型の表示

    初心者です。教えて下さい PHP+Pearで検索取得して 文字列型、数値型は表示出来るのですが、 DateTime型の表示がされません。文字列に変換する必要があるのでしょうか?どうすればよいですか? よろしくおねがいします。 <?php //省略 print("更新日時:" . $data['updateddatetime'] ); //省略 ?>

    • ベストアンサー
    • MySQL
  • サーバから取得したdatetime型の変換

    いつもお世話になります。 初めて質問させていただきます。 初心者のため、不足の部分あるかと思いますが どうぞよろしくお願いいたします。 SQLServer2000サーバからSQLによるデータ取得を行いファイルに出力し、 そのファイルの内容を違うサーバに送るという課題があります。 そのうちサーバからデータを取得してファイルに出力するまでが 現在の私の担当部分になります。 その取得するデータの中にdatetime型の項目が存在しています。 これをファイル出力するためにchar型に変換を行いたいのですが、 良い方法が思いつきません。 time_t型からtm型に変換してそこからchar型に変換することを考えたのですが、 取得してきた項目自体をtime_t型に変換する根本の方法が わかりません。 取得してきた項目はlong型の値になっているようですので long型からtime_t型への変換ができれば localtime関数を使用してtm型に変換できるのですが。 上記のような方法が無いのでしょうか。 また皆様の中で過去にdatetime型の項目取得を行った経験をお持ちの型が いらっしゃいましたら参考にお話いただけませんでしょうか。 上記で何か不足部分ございましたらご指摘ください。 よろしくお願いいたします。