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

Как да съхранявам NULL стойности в полетата за дата и час в MySQL?

MySQL прави разреши NULL стойности за datetime полета. Току-що го тествах:

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)

Използвам тази версия:

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

РЕДАКТИРАНЕ #1:Виждам във вашата редакция, че съобщението за грешка, което получавате в PHP, показва, че предавате празен низ (т.е. '' ), а не null . Празен низ е различен от null и не е валиден datetime стойност, поради което получавате това съобщение за грешка. Трябва да подадете специалната ключова дума sql null ако това имаш предвид. Също така, не поставяйте кавички около думата null . Вижте моята insert изявление по-горе за пример как да вмъкнете null .

РЕДАКТИРАНЕ #2:Използвате ли PDO? Ако е така, когато свързвате своя нулев параметър, не забравяйте да използвате [PDO::PARAM_NULL][1] въведете, когато обвързвате null . Вижте отговора на това въпрос на stackoverflow за това как правилно да вмъкнете null използвайки 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. Как да изберете най-добрите N реда на група в MySQL

  2. Как да използвам каскада за изтриване в mysql?

  3. Как да създадете и разположите база данни на Azure за MySQL сървър с помощта на Azure Portal и Workbench

  4. разделен със запетая низ от избрани стойности в mysql

  5. Как мога да използвам MySQL оператор за присвояване (:=) в собствена заявка за хибернация?