powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / int и smalldatetime
4 сообщений из 4, страница 1 из 1
int и smalldatetime
    #32075430
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста.
В Access базе конвертация даты из int в smalldatetime проходит как 37354=08.04.2002
Повторяю в QA:

set dateformat ymd
select Convert(datetime, convert(int,37354),4)
select Convert(int, convert(smalldatetime,'2002-04-08'))

результат:

------------------------------------------------------
2002-04-10 00:00:00.000

-----------
37352

Где проблема в таком несовпадении?
...
Рейтинг: 0 / 0
int и smalldatetime
    #32075459
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где проблема в таком несовпадении?

Проблемма в том что акцесси SQL по разному конвертят дату в число.

Чтобы не наступать на эти грабли, ИМХО, более безопасным является метод передачи дат через строку формата определенного стандарта. Я пердпочитаю, например, стандарт ANSI со столетием (yyyy.mm.dd). Хотя мне нравится и ISO со столетием (yyyymmdd). Первый является американским, второй международным.
...
Рейтинг: 0 / 0
int и smalldatetime
    #32075480
Когда из Access'а перегоняешь надо отнимать 2. А причина в том, что все офисные программы (Access,Excell,...) работают на OLE и скорее всего для работы с датами юзают сишный класс COleDateTime, так вот он также имеет разницу с MSSQL в 2 дня.
...
Рейтинг: 0 / 0
int и smalldatetime
    #32075532
Фотография Gulchatay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в VBA даты считаются от 30 декабря 1899 года, а в SQL с 1 января 1999, вот и разница в 2 дня.
Если хочешь, можешь сам проверить:
1. Запусти из VB:
Dim d As Date
Dim b As Long
d = #1/1/1900#
b = Int(d)
MsgBox Str(b) выдает 2
2. в SQL
set dateformat dmy
declare @date datetime
select @date='01.01.1900'
select convert(int,@date)
go
возвращает 0
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / int и smalldatetime
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]