2012-06-16 7 views
5

Fondamentalmente ho un semplice modulo di accesso. Nel database ho una colonna 'last_logged' e vorrei aggiornarlo con la data e l'ora correnti ogni volta che qualcuno accede aCome aggiornare la data SQL utilizzando NOW()

Al momento ho questa domanda:.

UPDATE users SET last_logged = "NOW()" WHERE id = 1 

ma non è così aggiorna la colonna alla data corrente. Tutte le idee perché?

+0

E non hai mai avuto idea provare whitout le virgolette? –

+5

Perché è stato downvoted? Questa è una domanda perfettamente ragionevole per un programmatore principiante. – BeRecursive

risposta

16

Rimuovere le virgolette da NOW(). Come chiamata di funzione, dovrebbe essere non quotato.

UPDATE users SET last_logged = NOW() WHERE id = 1 
+0

Inoltre, alcuni RDMBS utilizzano SYSDATE anziché NOW(). –

+0

nice :) ha funzionato. qualcosa di così semplice ma mi ci sono voluti ore per farlo! cheers mate – CarlTaylor1989

3

MS SQL utilizza GETDATE() piuttosto che NOW()

(Solo un condizionatore)
In SQL-Server ho ora utilizzare SYSDATETIME():

DECLARE @now DATETIME = DATEADD(dd,DATEDIFF(dd,'19000101',SYSDATETIME()),'19000101'); 
+1

No, le funzioni di data e ora sono specifiche del database. Se 'now()' è valido, tutto dipende dal loro tipo di database (che non hanno specificato). Sospetto che intendessi ** MS SQL ** piuttosto che SQL. – Leigh

+0

@Leigh volevo dire MS SQL per quello che vale (-1!) Modifico il mio post – whytheq

+0

Grazie per averlo corretto. Per qualche ragione, SO non mi permette di invertire il -1 e bloccare il mio voto. Puoi provare ad aggiornare di nuovo il post? – Leigh

Problemi correlati