mysqlを使用してクエリを作成しようとしています。mysqlで2 datetimeを減算します(24時間形式で1つ、am/pm形式で1つ)
select ID,NCOde,ifnull(EndTime,now())-starttime from xxx where starttime between
'2012-05-09 00:00:00' and '2012-05-09 23:59:59'
問題は、ifnull(EndTime、now())はdatetimeを24時間形式で返し、starttimeはam/pm形式を使用します。
私はDATE_FORMAT(starttime, '%m-%d-%Y %T')
を使用しようとしましたが、操作によってdatetime型が他の型に変更されたようです。
アドバイスはありますか?
+1私から、特にあなたの編集のため。 – fancyPants
返事が遅れて申し訳ありませんが、別の課題が気になります。私の場合は、開始時刻と終了時刻の両方がdatetimeですが、24時間形式のものとam/pm形式のものがあります。しかし、この差し引きは間違った結果をもたらす。 1つの書式を変更するが、その書式を日時として保持するにはどうすればよいですか? –
@wongchungyie: 'starttime'と' endtime'カラムがMySQL ['DATETIME'](http://dev.mysql.com/doc/ja/datetime.html)データ型である場合、それらは両方とも" 24hrフォーマットで "be" 1つが12時間形式であるためには、他のデータ型でなければなりません。おそらく 'VARCHAR'のような文字列型でしょうか?その場合、適切な[フォーマット文字列](http://dev.mysql.com/doc/en/date-and-time-functions.html#function_date-format)を '上記のように文字列を 'DATETIME'に構文解析するためには(例えば24時間、'%r'の代わりに '%T'を使用して)MySQLがSTR_TO_DATEを実行する必要があります。 – eggyal