функция проверки даты на начало отсчета в SQL #501127


#0 by Новенький_2009
знатоки SQL подскажите пожалуйста ответ на такой вопрос: при помощи 1С++ я сделал вьюху на один справочник базы 1С 7.7. В этом справочнике есть реквизит типа Дата. Так вот, если дату не заполнять, то в скульной табличке значение поля равно 1753-01-01 00:00:00.000. Насколько я понял, это какое-то установочное начальное время в SQL. Есть ли функция какая-нибудь, что проверить дата начальная или нет. Типа is null или что нибудь в этом духе, но только для даты?
#1 by ДенисЧ
сравнивай с этим значеним. А это "установочное начальное время" для 1с, а не sql
#2 by Новенький_2009
я сейчас так и делаю, но я подумал, может какая-то специальная функция есть. А по поводу чья это дата, то на сайте микрософта я прочитал, что данные даты и времени в скуле хранятся в диапазоне от 1 января 1753 г. по 31 декабря 9999 г. с точностью до одной трехсотой секунды или 3,33 миллисекунды :) Но спорить не буду, ибо хз как там правда что.
#3 by Дык ё
если тебе в выборке нужно пустую дату получить, то select nullif($спр.реквизит, '17530101') as реквизит
#4 by smaharbA
При приведении символьных данных, представляющих только дату или только время, к типам datetime и smalldatetime неуказанное время устанавливается в 00:00:00.000, а неуказанная дата — в 1900-01-01 не ?
#5 by Дык ё
если этот вопрос ко мне, то я его не понял. ты верно процитировал BOL, но термин "неуказанная дата" не применим к реквизитам справочников типа Дата
#6 by smaharbA
а передается что не строка что ли ? (1с++ не разумею)
#7 by Новенький_2009
обратно прилетает конечно строка. Идея то в чем была: это мне нужно, чтобы переливать некую инфу из 7.7 в 8.2. И для всех реквизитов с типом дата я захотел получить уже готовую строку для подсовыванья в функцию дата. Т.е. чтобы мне прилетела со скуля готовая строчка, и я его тупо отконвертировал (без шаманств). Естественно, когда в 7.7 дата не заполнена, со скуля летит 1753 г., и это так и конвертиться =) Поэтому приходится проверить в скуле на 1753 и преобразовывать в 00010101. Вопрос решил тупым сравнением с 1753, т.к. другого не нашел. К слову сказать пришлось пользовательскую функцию на скуле сделать, чтобы она как надо форматировало дату.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С