تحويل التاريخ بتنسيق النص إلى تنسيق DateTime في T-SQL
-
25-09-2019 - |
سؤال
لدي ملف مزود عميل يتم تحميله في قاعدة بيانات SQL Server الخاصة بنا. يحتوي هذا الملف على قيم التاريخ المستندة إلى نص IE (05102010) وأحتاج إلى قراءتها من عمود DB وتحويلها إلى قيمة وقت تاريخ عادية = '2010-05-10 00: 00: 00.000 "كجزء من التنظيف معالجة.
أي ارشاد سوف يكون مشكورا.
المحلول
طريقة واحدة باستخدام
CONVERT(datetime,RIGHT(Column,4) + left(Column,4))
مثال
declare @s char(8)
select @s = '05102010'
select CONVERT(datetime,RIGHT(@s,4) + left(@s,4))
نصائح أخرى
محاولة:
SELECT
CONVERT(datetime, RIGHT(YourColumn,4)
+LEFT(YourColumn,4)
) AS ProperDateTime
FROM...
مثال العمل:
DECLARE @YourTable table (StringDate char(8))
INSERT @YourTable VALUES ('05102010')
INSERT @YourTable VALUES ('03182010')
SELECT
CONVERT(datetime, RIGHT(StringDate,4)
+LEFT(StringDate,4)
) AS ProperDateTime
FROM @YourTable
انتاج:
ProperDateTime
-----------------------
2010-05-10 00:00:00.000
2010-03-18 00:00:00.000
(2 row(s) affected)
سريع و قذر:
SELECT
CONVERT(DATETIME,
SUBSTRING(col, 1, 2)
+ '/' + SUBSTRING(col, 3, 2)
+ '/' + SUBSTRING(col, 5, 4))
لا تنتمي إلى StackOverflow