OriginalGriff
Лучший подход - не хранить даты в виде целых чисел: измените свою БД так, чтобы они хранились в виде даты или времени - тогда она будет "просто работать" через всю систему и не доставит вам проблем. Всегда храните значения в правильном типе данных: использование неправильного может показаться хорошей идеей, но это всегда создает проблемы.
Если вы этого не сделаете, то вам придется возиться с данными каждый раз, когда вы хотите их использовать:
SELECT DATEFROMPARTS(myDateInAStupidFormatColumn / 10000, (myDateInAStupidFormatColumn/100) % 100, myDateInAStupidFormatColumn %100)
И надейтесь, что данные в вашей БД всегда являются действительной датой...
Затем сделайте что-то подобное, чтобы обратить процесс вспять, когда вы используете значение календаря.
Поверьте мне, изменение вашей базы данных сейчас, прежде чем проблема станет слишком большой, - это гораздо, гораздо лучшее решение!
dh52002
К сожалению, у меня нет никакого контроля над типом данных, так как это формат по умолчанию, хранящийся в программном обеспечении Macola exact.
Я попробовал сделать это выше, однако DATEFROMPARTS не распознается как встроенная функция в SQL Server 2008.
OriginalGriff
Ах! Я использую 2012 так ...
Вы можете посмотреть здесь:
http://stackoverflow.com/questions/19523721/creating-date-in-sql-server-2008
Это дает несколько решений, из которых Джоэл, вероятно, является лучшим.
У меня возникло бы искушение написать приложение "конвертер", которое считывало бы" дурацкую "БД и создавало бы" рабочую " БД - и запускало бы ее каждый раз, когда я хотел бы обновить ее из Macola (что бы это ни было, я о ней не слышал). Если вы не используете данные" реального времени " из приложения, это, вероятно, будет лучшим подходом.