Mysql
 sql >> база данни >  >> RDS >> Mysql

Мога ли да сравня времевата марка на MysQL с колоните за дата и час? лошо ли е?

Да, можете да сравните datetime с timestamp . Не е лошо, но имайте предвид следното:

От Справочното ръководство на MySQL ::Типовете DATETIME, DATE и TIMESTAMP .

Обърнете внимание как всички следните тестови случаи работят добре:

CREATE TABLE t1 (d1 datetime, d2 timestamp);

INSERT INTO t1 VALUES ('1968-01-01 00:00:00', '1980-01-01 00:00:00');
INSERT INTO t1 VALUES ('2040-01-01 00:00:00', '1980-01-01 00:00:00');

SELECT * FROM t1 WHERE d2 < d1;
+---------------------+---------------------+
| d1                  | d2                  |
+---------------------+---------------------+
| 2040-01-01 00:00:00 | 1980-01-01 00:00:00 |
+---------------------+---------------------+
1 row in set (0.00 sec)

SELECT * FROM t1 WHERE d2 > d1;
+---------------------+---------------------+
| d1                  | d2                  |
+---------------------+---------------------+
| 1968-01-01 00:00:00 | 1980-01-01 00:00:00 |
+---------------------+---------------------+
1 row in set (0.00 sec)

SELECT * FROM t1 WHERE d2 < '2040-01-01 00:00:00';
+---------------------+---------------------+
| d1                  | d2                  |
+---------------------+---------------------+
| 1968-01-01 00:00:00 | 1980-01-01 00:00:00 |
| 2040-01-01 00:00:00 | 1980-01-01 00:00:00 |
+---------------------+---------------------+
2 rows in set (0.00 sec)

SELECT * FROM t1 WHERE d2 > '2040-01-01 00:00:00';
Empty set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на NoSQL база данни през MySQL

  2. Дата в URL адрес дд/мм/гггг

  3. съхранени процедури, изпълнявани чрез jdbc

  4. SELECT LAST_INSERT_ID() работи в Direct MySQL заявка, но не периодично PHP QUERY

  5. Codeigniter Active Record HAVING / WHERE db.field =db.field