كيف أقارن وقت العصر ضد قبل 24 ساعة في SQL Server؟

StackOverflow https://stackoverflow.com/questions/248501

  •  05-07-2019
  •  | 
  •  

سؤال

وأستخدمه MS SQL Server 2005 أو أنا لدي تواريخ المخزنة في وقت العصر (ابتداء من 1970) لست بحاجة لخلق بيان من شأنها أن تؤثر على أي سجل التي لم يتم تحديثها خلال ال 24 ساعة الماضية.

هل كانت مفيدة؟

المحلول

لتحصل على التاريخ والوقت الحالي في شكل الحقبة، استخدم ( عبر ):

SELECT DATEDIFF(s,'19700101 05:00:00:000',GETUTCDATE())

لتحصل على وقت العصر حتى الآن - 24 ساعات الاستخدام:

SELECT DATEDIFF(s,'19700101 05:00:00:000', DATEADD(DAY, -1, GETUTCDATE()))

وهكذا، يمكن أن تفعله:

DECLARE @24_hours_ago AS INT
SELECT @24_hours_ago = DATEDIFF(s,'19700101 05:00:00:000', DATEADD(DAY, -1, GETUTCDATE()))

UPDATE table SET col = value WHERE last_updated < @24_hours_ago

نصائح أخرى

ويمكنك تحويل من SQL Server التاريخ والوقت لآخر عصر عن طريق حساب عدد الثواني التي انقضت منذ 1 يناير 1970، من هذا القبيل.

وSelect DateDiff(Second, '19700101', GetDate())

لتحصل على الصفوف من 24 ساعة الماضية ....

Select Columns
From   Table
Where  EpochColumn Between DateDiff(Second, '19700101', GetDate()) And DateDiff(Second, '19700101, GetDate()-1)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top