Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в OpenRowSet прописать дату в формате DMY ? / 14 сообщений из 14, страница 1 из 1
31.03.2008, 16:35
    #35225077
Генетический мусор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
Ситуация такова. На sql server затягиваются данные из фоксовской таблицы через openrowset. В таблице фокса дата представлена в поле "DO" в виде текстового поля формата DD/MM/YYYY (c(10)). При закачке из таблицы нужно отобрать позиции по указанному интервалу дат. Проблема в том, что внутри openrowset формат даты по умолчанию американский MM/DD/YYYY, следовательно у меня не получается задать сравнение, т.к. дата таблица будет некорректной (например начиная с 13/01/2008 в американском формате будет некорректной)

Код: plaintext
SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft Visual FoxPro Driver};SourceDB=c:\data';SourceType=DBF;Collate=Russian;Exclusive=NO','select * from mytable.dbf where between(ctod(do),ctod("01/01/2008"),ctod("31/01/2008"))')

Как привести даты к одному формату ?
...
Рейтинг: 0 / 0
31.03.2008, 16:37
    #35225085
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
1. Используйте формат YYYYMMDD
2. Перед использованием функции OPENROWSET установите:
SET DATEFORMAT DMY
С уважением, Алексей
...
Рейтинг: 0 / 0
31.03.2008, 16:40
    #35225100
Генетический мусор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
На клиенте SET DATEFORMAT DMY установлен. В ХП, где выполняется openrowset "снаружи" OPENROWSET формат даты DMY, а вот внутри OPENROWSET - MDY, в строке SELECT * FROM mytable.dbf WHERE ...

Как в ХП, повлиять на внутренности OPENROWSET ?
...
Рейтинг: 0 / 0
31.03.2008, 16:51
    #35225142
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
Генетический мусорКак в ХП, повлиять на внутренности OPENROWSET ?

Использовать универсальный формат представления даты как уже сказал Aleksey-K
...
Рейтинг: 0 / 0
31.03.2008, 16:54
    #35225157
Как в OpenRowSet прописать дату в формате DMY ?
Вместо ctod("01/01/2008"),ctod("31/01/2008") лучше использовать {^2008-01-01}, {^2008-01-31}
...
Рейтинг: 0 / 0
31.03.2008, 16:55
    #35225169
Генетический мусор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
PaulWist Генетический мусорКак в ХП, повлиять на внутренности OPENROWSET ?

Использовать универсальный формат представления даты как уже сказал Aleksey-K

Допустим у вас установлен формат даты AMERICAN. Каким образом дату в виде строки "31/01/2008" привести в формат 20080331 ?

SET DATE AMERICAN
? CTOD(DTOS(CTOD('31/03/2008')))

> / /
...
Рейтинг: 0 / 0
31.03.2008, 16:59
    #35225186
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
Есть еще функция DATE([nYear, nMonth, nDay])

Returns
Date

Arguments

nYear
Specifies the year returned in the year 2000-compliant Date value. nYear can be a value from 100 to 9999.

nMonth
Specifies the month returned in the year 2000-compliant Date value. nMonth can be a value from 1 to 12.

nDay
Specifies the day returned in the year 2000-compliant Date value. nDay can be a value from 1 to 31.
...
Рейтинг: 0 / 0
31.03.2008, 17:03
    #35225207
Как в OpenRowSet прописать дату в формате DMY ?
Генетический мусорДопустим у вас установлен формат даты AMERICAN. Каким образом дату в виде строки "31/01/2008" привести в формат 20080331 ?

SET DATE AMERICAN
? CTOD(DTOS(CTOD('31/03/2008')))

> / /
Вы издеваетесь? С каких это пор '31/03/2008' стало американским форматом? Результат CTOD('31/03/2008') смотрели? И как?
Пишите даты как я вам показал, это не зависящий от настроек формат.
...
Рейтинг: 0 / 0
31.03.2008, 17:09
    #35225234
Генетический мусор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
Проходящий, вы не врубились в то что мне нужно, читайте внимательно.
У меня в поле DO дата в символьном формате в виде DD/MM/YYYY. Каким образом я ее представлю в формате {^YYYY-MM-DD} без шаманства с LEFT и SUBS ?
...
Рейтинг: 0 / 0
31.03.2008, 17:13
    #35225244
Как в OpenRowSet прописать дату в формате DMY ?
Генетический мусорПроходящий, вы не врубились в то что мне нужно, читайте внимательно.
У меня в поле DO дата в символьном формате в виде DD/MM/YYYY. Каким образом я ее представлю в формате {^YYYY-MM-DD} без шаманства с LEFT и SUBS ?
Никаким. Даты надо хранить в полях соответствующего типа.
...
Рейтинг: 0 / 0
31.03.2008, 17:15
    #35225257
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
Генетический мусорУ меня в поле DO дата в символьном формате в виде DD/MM/YYYY. Каким образом я ее представлю в формате {^YYYY-MM-DD} без шаманства с LEFT и SUBS ?
Никак. Только если SET DATE GERMAN предварительно поставить
...
Рейтинг: 0 / 0
31.03.2008, 17:17
    #35225267
Как в OpenRowSet прописать дату в формате DMY ?
Dima T Генетический мусорУ меня в поле DO дата в символьном формате в виде DD/MM/YYYY. Каким образом я ее представлю в формате {^YYYY-MM-DD} без шаманства с LEFT и SUBS ?
Никак. Только если SET DATE GERMAN предварительно поставить
Это не GERMAN, а BRITISH.
...
Рейтинг: 0 / 0
31.03.2008, 17:20
    #35225279
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
проходящий.Это не GERMAN, а BRITISH.
Это не важно. Для работы CTOD() любой из 2-х подойдет
...
Рейтинг: 0 / 0
31.03.2008, 21:51
    #35225890
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в OpenRowSet прописать дату в формате DMY ?
Елы-палы! Ну нафига работать с датами в строковом представлении, объясните мне, если есть представление даты?
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в OpenRowSet прописать дату в формате DMY ? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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