2011-12-01 14 views
25

Dopo aver cercato su google, non riesco a trovare un modo per creare una nuova tabella con una colonna DATETIME con il formato di default impostato a 'DD-MM-YYYY HH:MM:SS'Mysql: imposta il formato di DATETIME su 'DD-MM-YYYY HH: MM: SS' quando si crea una tabella

ho visto un tutorial in cui è stato fatto in phpmyadmin così ho il sospetto che avrei potuto usare MySQL tramite riga di comando e ottenere la stessa cosa quando si crea la mia nuova tabella con

CREATE TABLE() 

Grazie in anticipo

+0

non credo che durante la creazione tabella è possibile modificare il formato – Rahul

risposta

40

"MySQL recupera e visualizza i valori DATETIME nel formato" AAAA-MM-GG HH: MM: SS "." Questo è dal sito mysql. È possibile memorizzare solo questo tipo, ma è possibile utilizzare una delle tante funzioni di formato dell'ora per modificarlo, quando è necessario visualizzarlo.

Mysql Time and Date functions

Per esempio, una di queste funzioni è la DATE_FORMAT, che può essere utilizzato per in questo modo:

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

Grazie mille –

+1

Per ottenere l'ora corrente usando la funzione 'date()' di PHP, usare 'date (" Y-m-d H: i: s ")'. – Carcigenicate

16

Utilizzare DATE_F Funzione ORMAT per modificare il formato.

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

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

consultare DOC per maggiori dettagli

4

Sono abbastanza certo che non è possibile modificare il formato datetime in mysql. L'impostazione phpmyadmin probabilmente applica un formato personalizzato mentre legge il datetime (utilizzando DATE_FORMAT o qualcosa da php). Non dovrebbe importare quale formato usi il database, formattare nell'applicazione per visualizzarlo come desideri.

La formattazione della data è un'attività piuttosto comune. In genere mi piace estrapolarlo in codice di internazionalizzazione o, se non è necessario trattare con i18n, in una libreria di utilità di data comune. Aiuta a mantenere le cose coerenti e rende più facile cambiare in seguito (o aggiungere il supporto i18n).

+0

Grazie per rispondere, ho letto sulla funzione DATE_FORMAT come un modo per ottenere il formato che voglio. –

2

No non è possibile; la data/ora verrà memorizzata nel formato predefinito solo durante la creazione della tabella e quindi potrai modificare il formato di visualizzazione nella tua query select nel modo desiderato utilizzando Mysql Date Time Functions

2

Questo non può essere fatto per la tabella; inoltre, non puoi nemmeno modificare questo valore predefinito.

La risposta è una variabile del server datetime_format, non è utilizzata.

2
Dim x as date 

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

dr è la variabile di datareader

0

provare questo:

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

Come altri hanno spiegato che non è possibile, ma ecco soluzione alternativa, richiede un po 'di messa a punto, ma funziona come una colonna datetime.

Ho iniziato a pensare, come avrei potuto rendere possibile la formattazione. Ho un'idea. Che ne dici di fare il grilletto per questo? Voglio dire, aggiungendo la colonna con il tipo char e quindi aggiornando quella colonna usando un trigger MySQL. E quello ha funzionato!Ho fatto qualche ricerca relativi ai trigger, e, infine, venire con queste query:

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'); 

Non è possibile utilizzare TIMESTAMP o DATETIME come un tipo di colonna, perché questi hanno un proprio formato, e loro aggiorna automaticamente.

Quindi, ecco il tuo timestamp alternativo o l'alternativa datetime! Spero che questo mi abbia aiutato, almeno sono contento di averlo fatto funzionare. seguente riga

5

ho usato del codice & funziona bene grazie .... @Mithun Sasidharan **

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

**

Problemi correlati