2013-06-26 5 views

ответ

3

Формат ввода для CDate зависит от вашего системного языка, что делает его бесполезным для синтаксического анализа значений, которые поступают в фиксированном формате.

Однако, так как ваши компоненты даты находятся в фиксированных положениях, самый простой способ заключается в использовании функции строки для извлечения значения из исходной строки:

Dim s As String 
Dim d As Date 

s = "20120515 061115" 
d = DateSerial(Left(s, 4), Mid(s, 5, 2), Mid(s, 7, 2)) _ 
    + TimeSerial(Mid(s, 10, 2), Mid(s, 12, 2), Mid(s, 14, 2)) 
0

Или вы можете сделать это в запросе на разборе дата и затем ее реконструкции:

В этом примере мой UglyDate выглядит следующим образом: Ср 17 марта 2010 10:07 вечера

SELECT [Tbl_UglyDate].[UglyDate], Mid([UglyDate],5,3) AS M, Mid([UglyDate],9,2) AS D, 
Mid([UglyDate],13,4) AS Y, Month("1 " & [M]) AS M2, 
([M2] & "/" & [D] & "/" & [Y]) AS date1, CVDate([date1]) AS [date] 
FROM [Tbl_UglyDate]; 
Смежные вопросы