2011-12-01 232 views
25

Después de buscar en Google, no encuentro una manera de crear una nueva tabla con una columna DATETIME con el formato predeterminado establecido a 'DD-MM-YYYY HH:MM:SS'Mysql: Configure el formato de DATETIME en 'DD-MM-YYYY HH: MM: SS' al crear una tabla

vi un tutorial en el que se hizo en phpmyadmin por lo que sospecho que podría utilizar MySQL a través de línea de comandos y lograr lo mismo al crear mi nueva tabla con

CREATE TABLE() 

Gracias con antelación

+0

no creo que durante la creación de la tabla se puede cambiar el formato – Rahul

Respuesta

40

"MySQL recupera y valores displays DATETIME en formato 'YYYY-MM-DD HH: SS: MM'." Esto es del sitio mysql. Puede almacenar solo este tipo, pero puede usar una de las muchas funciones de formato de hora para cambiarlo, cuando necesite mostrarlo.

Mysql Time and Date functions

Por ejemplo, una de esas funciones es la DATE_FORMAT, que puede ser utilizado para de este modo:

SELECT DATE_FORMAT(column_name, '%m/%d/%Y %H:%i') FROM tablename 
+0

Muchas gracias –

+1

Para obtener la fecha y hora actual usando la función 'date()' de PHP, use 'date (" Y-m-d H: i: s ")'. – Carcigenicate

16

uso DATE_F Función ORMAT para cambiar el formato.

SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y') 

SELECT DATE_FORMAT(column_name, '%d/%m/%Y') FROM tablename 

Consulte DOC para más detalles

4

Estoy bastante seguro de que no se puede cambiar el formato de fecha y hora en MySQL. La configuración de phpmyadmin probablemente esté aplicando un formato personalizado, ya que lee la fecha y hora (usando DATE_FORMAT o algo de php). No debe importar qué formato utiliza la base de datos, formatee en la aplicación para mostrarlo como lo desee.

Fecha de formato es una tarea bastante común. Por lo general, me gusta abstraerlo en el código de internacionalización o, si no es necesario tratar con i18n, en una biblioteca de utilidad de fecha común. Ayuda a mantener las cosas consistentes y hace que sea más fácil cambiarlas más tarde (o agregue compatibilidad con i18n).

+0

Gracias por su respuesta, he leído acerca de la función DATE_FORMAT como una manera de obtener el formato que quiero. –

2

No, no puedes; datetime se almacenará en formato predeterminado solo mientras se crea la tabla y luego puede cambiar el formato de visualización en su consulta select de la manera que desee utilizando Mysql Date Time Functions

2

Esto no se puede hacer para la tabla; Además, ni siquiera puedes cambiar este valor predeterminado.

La respuesta es una variable de servidor datetime_format, no se ha utilizado.

2
Dim x as date 

x = dr("appdate") 
appdate = x.tostring("dd/MM/yyyy") 

dr es la variable de datareader

0

intente esto:

DATE NOT NULL FORMAT 'YYYY-MM-DD' 
5

Como otros han explicado que no es posible, pero aquí hay solución alternativa, se requiere un poco de puesta a punto, pero funciona como la columna de fecha y hora.

empecé a pensar, cómo podría hacer que el formato sea posible. Tengo una idea. ¿Qué hay de hacer que se desencadene? Quiero decir, agregando una columna con el tipo char, y luego actualizando esa columna usando un disparador de MySQL. ¡Y funcionó!Hice algunas investigaciones relacionadas con los factores desencadenantes, y que finalmente culmine en estas consultas:

CREATE TRIGGER timestampper BEFORE INSERT ON table 
FOR EACH 
ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s'); 
CREATE TRIGGER timestampper BEFORE UPDATE ON table 
FOR EACH 
ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s'); 

no puede utilizar TIMESTAMP o DATETIME como un tipo de columna, ya que estos tienen su propio formato, y actualizar automáticamente

Así que, ¡aquí está su alternativa de marca de tiempo o alternativa de fecha y hora! Espero que esto haya ayudado, al menos estoy contento de haber conseguido esto funcionando.

5

he utilizado siguiente línea de código & funciona bien gracias .... @Mithun Sasidharan **

DATE_FORMAT SELECT (COLUMN_NAME, '% d /% m /% Y') a partir de nombredetabla

**

Cuestiones relacionadas