Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przechowywać wartości NULL w polach daty i godziny w MySQL?

MySQL robi zezwól na NULL wartości dla datetime pola. Właśnie to przetestowałem:

mysql> create table datetimetest (testcolumn datetime null default null);
Query OK, 0 rows affected (0.10 sec)

mysql> insert into datetimetest (testcolumn) values (null);
Query OK, 1 row affected (0.00 sec)

mysql> select * from datetimetest;
+------------+
| testcolumn |
+------------+
| NULL       | 
+------------+
1 row in set (0.00 sec)

Używam tej wersji:

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.45    | 
+-----------+
1 row in set (0.03 sec)

EDYCJA #1:Widzę w twojej edycji, że komunikat o błędzie, który otrzymujesz w PHP wskazuje, że przekazujesz pusty ciąg (tj. '' ), a nie null . Pusty ciąg różni się od null i nie jest prawidłową datetime wartość, dlatego otrzymujesz ten komunikat o błędzie. Musisz przekazać specjalne słowo kluczowe sql null Jeśli o to ci chodzi. Nie umieszczaj także cudzysłowów wokół słowa null . Zobacz moją insert powyżej, aby zobaczyć przykład, jak wstawić null .

EDYCJA #2:Czy używasz PDO? Jeśli tak, podczas wiązania swojego null param upewnij się, że używasz [PDO::PARAM_NULL][1] wpisz podczas wiązania null . Zobacz odpowiedź na to pytanie o przepełnienie stosu jak poprawnie wstawić null za pomocą PDO.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Codeigniter - wiele połączeń z bazą danych

  2. Błąd MySQL 2006:serwer mysql zniknął

  3. Używanie Pythona i MySQL w procesie ETL:SQLAlchemy

  4. Jak zainstalować MySQL 8 z Workbench w systemie Windows 10?

  5. mysql_fetch_row() vs mysql_fetch_assoc() vs mysql_fetch_array()