sql >> Databasteknik >  >> RDS >> Sqlserver

Lagrar en skottsekund i SQL Server 2008

Det kan du inte, eftersom SQL hämtar tiden från Windows och Windows stöder inte heller skottsekunder.

Windows tillämpar skottsekunder genom att ta den nya tiden från uppströmstidsservern och tillämpa de vanliga justeringarna som om det vore enkelt klockdrift .

Vanligtvis innebär detta att man justerar varje sekund med några nanosekunder under en längre period. Över 24 timmar skulle det fungera med ungefär en millisekund per minut.

I grund och botten låtsas de flesta applikationer helt enkelt att det inte finns något sådant som skottsekunder.

För de flesta ändamål spelar detta ingen roll. Om du har ett program där detta är viktigt, kommer inte operativsystemet att hjälpa dig. Du kommer också att behöva lite speciell hårdvara för att spåra tid, eftersom operativsystem i allmänhet har problem med att hålla tiden inom en sekund ändå. Windows synkroniserar som standard tid varje vecka eller mer sällan, och de flesta billiga PC-hårdvaruklockor (eller till och med de på dyra servrar) kan lätt glida flera sekunder under den tiden.

Eftersom du bryr dig om den exakta tiden antar jag att du pekar på pool.ntp.org eller ditt regionala undernät och har ställt in w32time för synkronisering flera gånger per dag.




  1. Aqua Data Studio

  2. Sequelize — använd UNIX-tidsstämpel för DATE-fält

  3. OM... ANNAT i WHERE-satsen MySQL

  4. Använd gruppera efter in- och returidentitet för raden