È possibile ingannare SQL Server per restituire una data diversa su GetDate()
senza effettivamente modificare la data della macchina?
Sarebbe fantastico, dato che abbiamo un database con vecchi dati e sto provando a testare alcune query che usano getdate().
Posso cambiare la data della mia macchina ma questo porta altri problemi con altre applicazioni ...
Qualche consiglio?
Grazie!Modifica dell'output di Getdate
5
A
risposta
8
Secondo il documentation for getdate():
Questo valore è derivato dal sistema operativo del computer sul cui l'istanza di SQL Server è esecuzione.
Poiché è derivato dal sistema operativo, non penso che sia possibile modificarlo separatamente.
4
È sempre possibile avvolgere GetDate()
in una funzione personalizzata e utilizzarlo ovunque, sebbene non sia una soluzione ottimale.
1
No, non c'è molto che si può fare altro che qualcosa di simile:
SELECT GETDATE()-7 --get date time 7 days ago
0
select dateadd(dd, -7 getdate())
+0
Bene, e come sarà aiuta a eseguire molti script con getdate() senza modificarli, per testarli rispetto ai dati in passato? – Artemix
come si può fare questo? anche se si crea un UDF, sarebbe 'dbo.GETDATE()' –
@KM: si cambierebbe l'implementazione della funzione in modo da poterla modificare ovunque modificando un luogo. @Klausbyskov: Se non sbaglio non è possibile avere una funzione non deterministica come GetDate in una UDF. – JoshBerke
KM è corretto, verrà utilizzato solo specificando dbo.getdate(), non sovrascrive/sostituisce la funzione incorporata. – Andrew