أبسط طريقة لإنشاء التاريخ الذي هو أول يوم من الشهر ، بالنظر إلى موعد آخر
-
02-07-2019 - |
سؤال
في SQL Server ما هو أبسط/أنظف طريقة لجعل التاريخ والوقت تمثل أول الشهر على أساس آخر datetime?على سبيل المثال لدي متغير أو عمود 3-Mar-2005 14:23 و أريد الحصول على 1-Mar-2005 00:00 (مثل التاريخ والوقت ، وليس كما varchar)
المحلول
Select DateAdd(Month, DateDiff(Month, 0, GetDate()), 0)
لتشغيل هذا على عمود استبدال GetDate() مع اسم العمود.
خدعة هذا الرمز مع DateDiff.DateDiff بإرجاع عدد صحيح.المعلمة الثانية (0) يمثل 0 تاريخ في SQL Server الذي هو 1 يناير 1900.لذا datediff بحساب عدد صحيح من أشهر منذ يناير 1, 1900, ثم يضيف أن عدد أشهر إلى 1 يناير 1900.الأثر الصافي هو إزالة اليوم (الوقت) جزء من قيمة.
نصائح أخرى
SELECT DATEADD(mm, DATEDIFF(mm, 0, @date), 0)
شيء مثل هذا العمل....
UPDATE YOUR_TABLE
SET NewColumn = DATEADD(day, (DATEPART(day, OldColumn) -1)*-1, OldColumn)
مجرد استخدام
DATEADD(DAY, 1-DAY(@date), @date)
لا تنتمي إلى StackOverflow