2012-04-11 4 views
0

私はdate1 varchar(4)date2 varchar(4)の2つのフィールドを持っています。日付形式はちょうどHHmmです.HHは時間、mmは分です。SQLで2つのタイムスタンプを追加

SQLには、2つのタイムスタンプを一緒に追加して、何時間何分することができるのですか?

date1 = 0230 date2 = 0145 will total 0415 
date1 = 0030 date2 = 0035 will total 0105 
+1

参考のため、問題のタグでDBMSを指定するのは悪い考えではありません。 –

+0

申し訳ありませんが、編集で余分なタグを追加できました。 – fes

答えて

2
declare @d1 varchar(4), @d2 varchar(4), @dif int 

set @d1 = '0230' 
set @d2 = '0145' 

set @dif = (CAST(left(@d1, 2) as int) * 60) + (CAST(left(@d2, 2) as int) * 60) + CAST(right(@d1, 2) as int) + CAST(right(@d2, 2) as int) 

select RIGHT('00' + cast(floor(@dif/60) as varchar), 2) + RIGHT('00' + CAST(@dif % 60 as varchar),2) 
+0

これはちょうど私が欲しかったものです。部分文字列のルートに行くつもりでしたが、左右が完璧です。 – fes

0

実際にはタイムスタンプではありませんが、整数として保存しないのはどうですか?

何とか...これにはmysql関数があります。 閲覧することができます:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 大いに役立つかどうか分かりません。 秒単位で保存する場合は、mysqlに追加するだけで済みます。そうでない場合は、スクリプトに取り込んで数秒に変換して追加し、必要に応じてより読みやすい形式に変換します。

+0

OPはmysqlを使用していません。 –

+0

それは私がちょうど操作を行うことができるようにする必要があるので、Bradの遺産。私はちょうど部分文字列を使用し、時間と分を分割して何かをする必要があるかもしれないと思っています – fes

0

この(使用時間または日付時刻)を試してみてください。

select ADDTIME(time1,time2); 

mysqlの時間では、フォーム

'01:02:03' 

、日付時刻であるあなたが起これば

'2003-12-31 01:02:03' 
+0

OPはmysqlを使用していません。 –

0

ですSQL Serverを使用している場合は、ここで説明するDATEDIFF関数を使用することもできます。http://msdn.microsoft.com/en-us/library/ms189794.aspx

これにより、datetime値の任意の部分の差を取得できます。 DATEADDは、これをどのように処理したいかによって、これにも使用できます。

+0

OPには 'varchar'値があります。 'datetime'ではありません –

関連する問題