sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server:fascineret af GETDATE()

GetDate() var aldrig deterministisk. Deterministisk betyder, at det altid vil returnere det samme resultat, når det passerer de samme parametre.

Til fælles med rand() Det evalueres én gang pr. kolonne men når den først er blevet evalueret, forbliver den den samme for alle rækker.

Det er lettere at se denne adfærd med rand() end getdate()

vælg top 4 rand(), rand() fra sys.objects 

Returneret

------------------------------------------------------ 0,0566172633850772.

Hvis du prøver følgende

vælg top 10 getdate(), getdate() fra sys.objects 

og se på ComputeScalar-operatøregenskaberne i den faktiske udførelsesplan, vil du se, at GetDate() evalueres to gange.

NB:Det er muligt, at denne adfærd for evaluering pr. kolonne i stedet for pr. forespørgsel ændrede sig efter SQL 2000 (jeg ved det ikke), men det er ikke, hvad BOL definerer som betydningen af ​​deterministisk.



  1. psycopg2 :markøren er allerede lukket

  2. JDBC fejl, men ingen fejl, når jeg kører min forespørgsel i MySQL workbench

  3. Vil du udtrække sekunder fra intervaltabel / Cast record til interval?

  4. Flask App vil ikke indlæse app.py (den angivne fil/sti (appen) ser ikke ud til at eksistere)