Конвертировать годы и недели в дату в sql msaccess

Как преобразовать текст в дату в SQL как указано ниже?

Y12-W01 до 20120102

Y12-W02 до 20120109

Y12-W03 до 20120116

и так далее...

Я использую MS-доступ.

заранее благодарю вас.

3 ответа

Решение

Вам не нужна отдельная функция, попробуйте этот пример SQL:

SELECT FieldName, DateAdd("ww",CDbl(Mid([FieldName],6,2))-1,DateSerial(Mid([FieldName],2,2),1,1)) AS ConvDate
FROM TableName

Я думаю, что самым простым способом было бы составить таблицу дат, по одной строке на каждую неделю. Одно поле будет исходным форматом Y12-W01, а 2-е поле будет результирующей датой 20120102. Присоедините ваши исходные данные к этой таблице в 1-м поле и используйте 2-е поле в качестве даты в дальнейших sql или запросах.

Разберите вашу Неделю и Год вне вашей области. Я дам тебе понять это.; О)

Когда у вас есть неделя и год, передайте их в эту функцию:

Function GetWeekStart(weekNum As Integer, yr As Integer) As Date

    GetWeekStart = DateSerial(yr, 1, 1 + (weekNum * 7) - 6 - Weekday(DateValue("1/1/" & yr)))

End Function 
Другие вопросы по тегам