تقارير خدمات الإبلاغ تزيل الوقت من DateTime in Expression
-
22-09-2019 - |
سؤال
أحاول ملء تعبير (القيمة الافتراضية للمعلمة) مع وقت صريح. كيف يمكنني إزالة الوقت من وظيفة "الآن"؟
المحلول 12
وجدت الحل من هنا
هذا يحصل على آخر ثانية من اليوم السابق:
DateAdd("s",-1,DateAdd("d",1,Today())
هذا يعيد الثانية الأخيرة من الأسبوع السابق:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
نصائح أخرى
شيء من هذا القبيل:
=FormatDateTime(Now, DateFormat.ShortDate)
حيث يمكن استبدال "الآن" باسم حقل التاريخ/الوقت الذي تحاول تحويله.)
على سبيل المثال،
=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
نظرًا لأن SSRS تستخدم VB ، يمكنك القيام بما يلي:
=Today() 'returns date only
إذا كنت ستستخدم:
=Now() 'returns date and current timestamp
=CDate(Now).ToString("dd/MM/yyyy")
على الرغم من أنك ترسم تاريخ Formart إلى لغة.
فقط استخدم DateValue(Now)
إذا كنت تريد أن تكون النتيجة DateTime
نوع البيانات.
إذا كان تنسيق البيانات المتوقع هو MM-dd-yyyy
ثم حاول أدناه,
=CDate(Now).ToString("MM-dd-yyyy")
وبالمثل ، يمكنك تجربة هذا ،
=Format(Today(),"MM-dd-yyyy")
انتاج: 02-04-2016
ملحوظة:
Now()
سوف تظهر لك التاريخ الحالي و طابع زمني
Today()
سوف تظهر لك تاريخ فقط ليس جزء الوقت.
كما يمكنك تعيين أي تنسيق للتاريخ بدلاً من MM-dd-yyyy
في المثال الخاص بي.
في خاصية التنسيق لأي حقل مربع نص ، يمكنك استخدام سلاسل التنسيق:
مثل د/م/ص ، د ، إلخ.
شيء واحد قد يساعد الآخرين هو أنه يمكنك وضع: =CDate(Now).ToString("dd/MM/yyyy")
في خاصية سلسلة التنسيق الخاصة بـ SSRs التي يمكن الحصول عليها بالنقر بزر الماوس الأيمن على العمود. هذه هي أنظف طريقة للقيام بذلك. ثم لن يكون تعبيرك كبيرًا جدًا ويصعب "تحليل" بصريًا :)
FormatDateTime(Parameter.StartDate.Value)
أنا قادم في وقت متأخر من اللعبة ولكني جربت كل الحلول أعلاه! لم أستطع الحصول عليها لإسقاط الصفر في المعلمة وتعطيني افتراضيًا (تجاهل التنسيق أو ظهر فارغًا). كنت أستخدم SSRS 2005 ، لذا كنت تكافح مع مشكلاتها العائلية / العربات التي تجرها الدواب.
كان الحل الخاص بي هو إضافة عمود إلى جدول [dimdate] المخصص في قاعدة البيانات الخاصة بي التي كنت أسحبها من التواريخ. أضفت عمودًا كان تمثيلًا للسلسلة في التنسيق المطلوب للعمود [Date]. قمت بعد ذلك بإنشاء مجموعتين جديدتين في SSRs التي سحبت في الاستعلامات التالية للاثنتين الافتراضيتين لـ "إلى" و "من" Date Date Defaults -
'من عند'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date < DATEADD(month, -3, GETDATE()
)
'ل'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date <= GETDATE()
)
حلي لمعلمة التاريخ/الوقت:
=CDate(Today())
الحيلة هي تحويل مرة أخرى إلى وقت البيانات كما يوصي Perhentian.
فقط تسلسل سلسلة إلى نهاية القيمة:
Fields!<your field>.Value & " " 'test'
وهذا يجب أن يعمل!
يجب أن يتم ذلك في مجموعة البيانات. يمكنك القيام بذلك
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
في SSRS
تخطيط ، فقط افعل هذا =Fields!DateColumnName.Value