Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

SQL=>Between=>Time??? Sos

2.1K
07 января 2003 года
Best
11 / / 06.12.2002
Здравствуйте всем!
Подскажите пожалуйста как можно вытащить записи созданные по времени?
Например мне нужно вытащить все записи из таблицы по поле Ph_Time тип (Дата/время->Длинный формат времени) БД Access в промежутке c 09:00:00 по 20:00:00
Пробовал так “select * from Telephone where Ph_Time between #09:00:00# and #20:00:00#”
Но он мне выдает ошибку: <<Query1: Field ’00:00#’ is of an unknown type>>? В чем у меня проблема? И как можно вытащить эти записи через SQL-запрос?
:sad:
358
08 января 2003 года
moonmike
423 / / 18.10.2002
Цитата:
Originally posted by Best
Здравствуйте всем!
Подскажите пожалуйста как можно вытащить записи созданные по времени?
Например мне нужно вытащить все записи из таблицы по поле Ph_Time тип (Дата/время->Длинный формат времени) БД Access в промежутке c 09:00:00 по 20:00:00
Пробовал так “select * from Telephone where Ph_Time between #09:00:00# and #20:00:00#”
Но он мне выдает ошибку: <<Query1: Field ’00:00#’ is of an unknown type>>? В чем у меня проблема? И как можно вытащить эти записи через SQL-запрос?
:sad:

А может попробовать так:
“select * from Telephone where Ph_Time =>#09:00:00# and Ph_Time <= #20:00:00#”

2.1K
08 января 2003 года
Best
11 / / 06.12.2002
Цитата:
Originally posted by moonmike
А может попробовать так:
“select * from Telephone where Ph_Time =>#09:00:00# and Ph_Time <= #20:00:00#”



Так то же пробовал, но я понял в чем у меня проблема, знак ":" он понимает не как разделитель времени, а как динамическое переменное и поэтому руг-ся на :00 как бы не определенный перменный.
Это у меня Query1-запрос в Builder-е.
Хотя я выкрутился по другому, но это нужная вещь для меня, так что буду рад если кто-нибудь ответит.

358
08 января 2003 года
moonmike
423 / / 18.10.2002
Цитата:
Originally posted by Best


Так то же пробовал, но я понял в чем у меня проблема, знак ":" он понимает не как разделитель времени, а как динамическое переменное и поэтому руг-ся на :00 как бы не определенный перменный.
Это у меня Query1-запрос в Builder-е.
Хотя я выкрутился по другому, но это нужная вещь для меня, так что буду рад если кто-нибудь ответит.


Попробуй указывать время вот так:
'09:00:00'

2.1K
09 января 2003 года
Best
11 / / 06.12.2002
Цитата:
Originally posted by moonmike

Попробуй указывать время вот так:
'09:00:00'



Так то же пробовал, но тогда он ругался на несоответствие типов данных :-? .

358
09 января 2003 года
moonmike
423 / / 18.10.2002
Цитата:
Originally posted by Best


Так то же пробовал, но тогда он ругался на несоответствие типов данных :-? .


Тогда используй стандартный подход - Запрос пиши так:
select * from where Time >= :STime and Time <= :ETime
а в коде соответственно пиши:
TTime StartTime;
Query1->Params->ParamByName(":STime")->AsTime = StartTime;
.....
Query1->Open();

1.7K
09 января 2003 года
Mark
114 / / 21.11.2002
Честно говоря, никогда не работал с Access'ом, но похожие проблемы бывают и с другими базами. Если символы # не указывают явно, что строка внутри имеет тип дата/время, то попробуй выполнить явное преобразование к типу дата/время.
1.7K
09 января 2003 года
Mark
114 / / 21.11.2002
Вот еще что. Проверь региональные настройки Win - возможно есть смысл пошерудить длинный/короткий формат даты.
2.1K
13 января 2003 года
Best
11 / / 06.12.2002
Цитата:
Originally posted by Mark
Вот еще что. Проверь региональные настройки Win - возможно есть смысл пошерудить длинный/короткий формат даты.



В региональных настройках то же шарился, и никокого результата. Теперь вот думаю попробовать классическим методом, как предлогает Мoonmike. Но пока я выкрутился из ситуации и эту программу надо довести до ума т. е. создать дистрибутивку.
И у меня возникли некоторые вопросы, думаю для этого лучше открою новую тему, если сможете ответьте тама пожалуйста, спасибо за помощь.

1.8K
13 января 2003 года
ALI
129 / / 10.01.2003
попробуй так
 
Код:
select * from YOUR_TABLE
  where
     TIME_FIELD>= CAST('#09:00:00#' as TIME)
     and TIME_FIELD<= CAST('#20:00:00#' as TIME)

или
 
Код:
select * from YOUR_TABLE
  where
     TIME_FIELD>= CAST('09:00:00' as TIME)
     and TIME_FIELD<= CAST('20:00:00' as TIME)


вместо as TIME можно также попробовать
TIMESTAMP

Код:
CAST(column_reference AS data_type)

Description

Use CAST to convert the value in the specified
column to the data type specified. CAST can also
be applied to literal and calculated values. CAST
can be used in the columns list of a SELECT
statement, in the predicate for a WHERE clause,
or to modify the update atom of an UPDATE
statement.

The Data_Type parameter may be one of most column
data type applicable to the table type used:
CHAR, INTEGER, NUMERIC, and so on. Certain column
types cannot be used as the source or target data
types: BLOB, MEMO, and BYTES.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог