Mysql: imposta il formato di DATETIME su ‘GG-MM-AAAA HH: MM: SS’ quando si crea una tabella

Dopo aver cercato su google, non riesco a trovare un modo per creare una nuova tabella con una colonna DATETIME con il formato predefinito impostato su ” DD-MM-YYYY HH:MM:SS

Ho visto un tutorial in cui è stato fatto in phpmyadmin quindi ho il sospetto che potrei usare mysql tramite la riga di comando e ottenere la stessa cosa quando creo il mio nuovo tavolo con

 CREATE TABLE () 

Grazie in anticipo

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

Funzioni di MySql Time e Date

Ad esempio, una di queste funzioni è DATE_FORMAT , che può essere utilizzata per piacere:

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

Usa la funzione DATE_FORMAT per cambiare il formato.

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

Consultare DOC per maggiori dettagli

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

Ho iniziato a pensare, come avrei potuto rendere ansible la formattazione. Ho un’idea. Che ne dici di fare il grilletto per questo? Voglio dire, aggiungendo una colonna con tipo char , e quindi aggiornando quella colonna usando un trigger MySQL. E quello ha funzionato! Ho fatto alcune ricerche relative ai trigger e alla fine ho trovato queste domande:

 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 è ansible utilizzare TIMESTAMP o DATETIME come tipo di colonna, poiché questi hanno il proprio formato e si aggiornano automaticamente.

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

ho usato la seguente riga di codice e funziona bene Grazie …. @Mithun Sasidharan **

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

**

Sono abbastanza certo che non è ansible 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à abbastanza 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).

No, non puoi; la data / ora verrà memorizzata nel formato predefinito solo durante la creazione della tabella e quindi potrai cambiare il formato di visualizzazione quando select query nel modo desiderato utilizzando le funzioni di data e ora di Mysql

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

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

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

dr è la variabile di datareader

prova questo:

 DATE NOT NULL FORMAT 'YYYY-MM-DD'