insertar hora formulario formato fecha español desde date_format php mysql datetime

formulario - insertar fecha y hora en mysql desde php



Seleccionar campos de fecha y hora mysql vacíos (7)

Mejor de qué manera? Esa consulta hace todo lo que le pides y, siempre que haya un índice en datetime_field , es lo más rápido posible.

Si le preocupa que la consulta parezca "fea", no lo haga. Su intención es bastante clara.

La única mejora posible que podría considerar es utilizar valores NULL para estas filas de fecha y hora cero, en cuyo caso su consulta se convierte en:

SELECT * FROM `table` WHERE `datetime_field` IS NULL

Eso es lo que haría con un DBMS que cumpla con los estándares. Tengo entendido que MySQL puede representar campos de fecha y hora NULL verdaderos de esta manera horrible, en cuyo caso creo que IS NULL puede no funcionar.

¿Hay una mejor manera de seleccionar campos de fecha y hora vacíos que esto?

SELECT * FROM `table` WHERE `datetime_field` = ''0000-00-00 00:00:00''


Permítanme presentar un descargo de responsabilidad, no estoy seguro de lo que esto hará. Pero sería genial si funcionara.

SELECT * FROM table WHERE datetime = DATESUB(NOW(),NOW());


Yo uso esto:

SELECT * FROM `table` WHERE UNIX_TIMESTAMP(`datetime_field`) = 0


SELECT * FROM db.table WHERE UNIX_TIMESTAMP(datetime_field) = 0

Me gusta este código porque no solo atrapa "fechas cero" (por ejemplo, "0000-00-00 00:00:00") sino que también captura "ceros en las fechas" (p. Ej., "2010-01-00 00:00:00"). )


Como otra opción, he visto:

SELECT * FROM `table` WHERE YEAR(`datetime_field`)=0


O simplemente puede hacer:

SELECT * FROM `table` WHERE `datetime_field` = 0


Si su columna de fecha / fecha y hora NO ES NULA, puede usar:

SELECT * FROM `table` WHERE `datetime_field` IS NULL

MySQL seleccionará columnas que igualen ''0000-00-00 00:00:00'' para usted.

Nota : Si lo haces:

SELECT `datetime_field` IS NULL

MySQL devolverá 0 (falso), pero esta declaración será verdadera cuando se use como parte de la cláusula WHERE.

Del manual

Para las columnas DATE y DATETIME que se declaran como NOT NULL, puede encontrar la fecha especial ''0000-00-00'' utilizando una declaración como esta:

SELECT * FROM tbl_name WHERE date_column IS NULL

Esto es necesario para que algunas aplicaciones ODBC funcionen porque ODBC no admite un valor de fecha ''0000-00-00''.