Конвертировать годы и недели в дату в 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