Mysql <=が間違った出力を出している

ラジャダザン

私のテーブル

starttime   |   endtime  |   id

10:30            11:30        1
11:30            12:30        2
14:30            16:30        3
15:30            16:30        4 

10:30から12:30までのIDを選択したい場合は、以下のコマンドを使用します

select id
from table
where STR_TO_DATE(starttime,'%H:%i')>='10:30' and
      STR_TO_DATE(endtime,'%H:%i')<='12:30';

これにより、ID 1のみが得られますが、2は得られません。また、12:30から12:40に変更すると、1と2が得られます。なぜそのように機能しないのですか?

Tim Biegeleisen

問題は、日付オブジェクトを文字列と比較しようとしていることです。正確には、次の式で

STR_TO_DATE(starttime,'%H:%i') >= '10:30'

STR_TO_DATE日付を返しますが、'10:30'単なるvarcharです(偶然にも時間のように見えます)。この道を進みたい場合は、以下を使用して比較の両側をキャストする必要がありますSTR_TO_DATE

SELECT id
FROM table
WHERE STR_TO_DATE(starttime,'%H:%i') >= STR_TO_DATE('10:30','%H:%i') AND
      STR_TO_DATE(endtime,'%H:%i') <= STR_TO_DATE('12:30','%H:%i');

しかし、長期的により良いアプローチは、あなたstarttimeendtime列をまたはのいずれDATETIMEかにすることTIMESTAMPです。

SQLFiddle

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

日時の違いがmysqlで間違った値を示している

分類Dev

MySQL関数が間違った値を返しています

分類Dev

SelectmaxがMySQLで間違った値を返しています

分類Dev

mysql timediff関数が間違った出力を出すのはなぜですか?

分類Dev

MySQLが間違ったインデックスを使用していると思います

分類Dev

mysqlで日付の違いが誤った出力を生成する

分類Dev

比較した mySQL の値が間違っています

分類Dev

「MySQLサービスが間違ったパスで検出されました」xamppを開いた後

分類Dev

getXmlEncoding()が間違った出力を出している

分類Dev

MySql Join withSumが間違った出力を返す

分類Dev

MySQL移動平均は間違った結果を出します

分類Dev

MySQLクエリは間違った結果を出します

分類Dev

PHPが間違ったMySQLホスト名に接続していますか?

分類Dev

MySQL / HibernateがLocalTimeとしてマップされた列で間違ったデータを取得する

分類Dev

このMYSQLクエリを作成する際に何が間違っていたのか理解できません

分類Dev

WHERE句で<>(等しくない)を使用すると、MySQLクエリが間違った結果を返す

分類Dev

MySQLでUtf-8を使用して選択すると、間違った結果が返されます

分類Dev

MYSQL検索が間違った重複した値を返す

分類Dev

MySQLクエリが間違っているCOUNT

分類Dev

mysql create table ...何が間違っているのか

分類Dev

mysqlログの結果は正しい答えを示していますが、送信は間違った答えを示しています

分類Dev

BIRTのselectステートメントは、MySQLワークベンチとは異なる(そして間違った)出力を提供します

分類Dev

SQL ServerXMLが間違った出力をクエリしている

分類Dev

( "#div> tag")。lenghtが間違った値を出力している

分類Dev

入力が間違った出力を取得している場合

分類Dev

私のコードは正しいのに間違ったmysql構文を示しています

分類Dev

SQL(Mysql)がORと組み合わされていない、間違った結果

分類Dev

Mysql JDBC-ResultSetが入力されていない+間違った番号 行の

分類Dev

誰かがmysqlで私が間違っていることを言うことができますか?

Related 関連記事

  1. 1

    日時の違いがmysqlで間違った値を示している

  2. 2

    MySQL関数が間違った値を返しています

  3. 3

    SelectmaxがMySQLで間違った値を返しています

  4. 4

    mysql timediff関数が間違った出力を出すのはなぜですか?

  5. 5

    MySQLが間違ったインデックスを使用していると思います

  6. 6

    mysqlで日付の違いが誤った出力を生成する

  7. 7

    比較した mySQL の値が間違っています

  8. 8

    「MySQLサービスが間違ったパスで検出されました」xamppを開いた後

  9. 9

    getXmlEncoding()が間違った出力を出している

  10. 10

    MySql Join withSumが間違った出力を返す

  11. 11

    MySQL移動平均は間違った結果を出します

  12. 12

    MySQLクエリは間違った結果を出します

  13. 13

    PHPが間違ったMySQLホスト名に接続していますか?

  14. 14

    MySQL / HibernateがLocalTimeとしてマップされた列で間違ったデータを取得する

  15. 15

    このMYSQLクエリを作成する際に何が間違っていたのか理解できません

  16. 16

    WHERE句で<>(等しくない)を使用すると、MySQLクエリが間違った結果を返す

  17. 17

    MySQLでUtf-8を使用して選択すると、間違った結果が返されます

  18. 18

    MYSQL検索が間違った重複した値を返す

  19. 19

    MySQLクエリが間違っているCOUNT

  20. 20

    mysql create table ...何が間違っているのか

  21. 21

    mysqlログの結果は正しい答えを示していますが、送信は間違った答えを示しています

  22. 22

    BIRTのselectステートメントは、MySQLワークベンチとは異なる(そして間違った)出力を提供します

  23. 23

    SQL ServerXMLが間違った出力をクエリしている

  24. 24

    ( "#div> tag")。lenghtが間違った値を出力している

  25. 25

    入力が間違った出力を取得している場合

  26. 26

    私のコードは正しいのに間違ったmysql構文を示しています

  27. 27

    SQL(Mysql)がORと組み合わされていない、間違った結果

  28. 28

    Mysql JDBC-ResultSetが入力されていない+間違った番号 行の

  29. 29

    誰かがmysqlで私が間違っていることを言うことができますか?

ホットタグ

アーカイブ