سؤال

لدي ملف مزود عميل يتم تحميله في قاعدة بيانات 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))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top