في محاولة لتحويل "yyyy إنهاء / مم / سس: دد: ث ث" (المخزنة كما شار) في التاريخ والوقت باستخدام عمود محسوب
-
06-07-2019 - |
سؤال
وهذا يبدو وكأنه يجب أن يكون بسيطا ولكنه يقود لي حتى الجدار.
ولقد اثنين من الأعمدة - 'tx_date "و" الوقت "تخزين كل كما شار (10). (سيئة تصميم قاعدة البيانات وأنا أعلم، ولكن لم يكن تصميمي)
ومن استعلام يمكنني تحويلها إلى التاريخ والوقت على ما يرام -
و"... تحويل (التاريخ والوقت، tx_date، والوقت، 11) ..."
و(حتى tx_date "09/11/27" والوقت "7:12:18" سوف تنتج "2009-11-27 07: 12: 18.000")
ولكن لو كنت ثم نسخ ولصق تحويل إلى الحقل "الصيغة" في SQL Server إدارة Studio (نفس المكان اختبرته يعمل في استعلام) يقول لي "خطأ التحقق من صحة الصيغة لعمود .."
إذا كنت اجبارها على استخدام هذه الصيغة على أي حال كان يعمل، ولكن أنا لا أريد أن يذهب إلى الأمام وإضافة هذا عمود محسوب إلى جدول مهم حتى أعرف السبب الذي لديه مشكلة مع الصيغة.
المحلول
ويمكنك إضافة حقل محسوب إلى الجدول في SQL Server إدارة Studio باستخدام استعلام لا مشكلة:
ALTER TABLE dbo.YourTable
ADD NewDateTimeField AS CONVERT(DATETIME, tx_date + ' ' + time, 11)
ولكن لسوء الحظ، لا يمكن أن تجعل من "استمر" لأن وظيفة CONVERT في غير القطعية. وهذا يعني أنه سوف يتم فحص كل مرة يتم الوصول إليه، وأنت لا تستطيع أن تضع فهرس على ذلك: - (
ومارك