2017-06-28 6 views
-3

今私はデータベースからデータを取得するために関連する問題に直面しています。 問題は、データベースの時刻フィールドに文字列があるということであると私は取得することはできませんよので、私は倍の間でデータを取得する必要があり、そのデータ2つの文字列時間の間にデータベースからデータを取得する方法は?

データベース

r_value varchar(250) 

r_date date 

r_time varchar(10) 

クエリ

SELECT SUM(r_value) as reading FROM [TABLE NAME] WHERE d_id in (7596) 
    AND DATE_FORMAT(r_date, "%Y-%m-%d") = "2017-06-28" 
    AND r_time >= "12:00 AM" AND r_time <= "07:12 am" 

だから、thous 2文字列時間の間にデータを取得する方法を教えてください?

+0

日付とvarcharの代わりにdatetime ..を使用する必要があります。 – scaisEdge

答えて

0

日付と時刻の両方で、タイムスタンプを使用する方がよいでしょう。

タイムスタンプはサーバーに依存しません。

フィールドの種類をtimestampに変更し、簡単に検索することをお勧めします。たとえば:

SELECT SUM(r_value) as reading FROM [TABLE NAME] WHERE d_id in (7596) 
    AND r_date = '1498631600' 
    AND r_time >= '1498631600' AND r_time <= '1498631600' 

またはSO

SELECT SUM(r_value) as reading FROM [TABLE NAME] WHERE d_id in (7596) 
    AND r_date = unix_timestamp('2017-01-01') 
    AND r_time >= unix_timestamp('2017-01-01 00:00:00') AND r_time <= unix_timestamp('2017-01-01 00:00:00') 

はまた、あなたがあなたのクライアントにしたい任意の形式で日付と時刻を表示することができます。

関連する問題