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

Ваш аккаунт

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

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

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

Sql Запрос

357
09 апреля 2004 года
Тимофей
112 / / 20.02.2000
Запрос :
INSERT INTO mn(Tip, Number, BNumber,Call_date, Call_time, Call_min, KVP)
select cast(z.Tip as int) as tip ,
cast(z.ANumber as int)-4600000 as number,
cast (z.bnumber as char(15)),
cast( substring(z.cdate from 7 for 2)||'.'|| substring(z.cdate from 5 for 2)||'.'|| substring(z.cdate from 1 for 4) as date) as call_date,
cast( substring(z.ctime from 1 for 2) ||':'|| substring(z.ctime from 3 for 2)
||':'|| substring(z.ctime from 5 for 2) as time) as call_time,
cast (dcall as int) as call_min,
cast (z.kvp as int) as kvp
from "d:\\__\\D0331WUK.DBF" z where cast(anumber as numeric) >4626000 and cast(anumber as int) <4630000

При выполнении пишет что типы не соответствуют, хотя они полность совпадают с структурой mn. В чем дело?
357
09 апреля 2004 года
Тимофей
112 / / 20.02.2000
Если не выполнять инсерт вот что получится:
tip number bnumber call_date call_time call_min kvp
1 27778 26120800 31.03.2004 03:11:41 49 261
4.6K
09 апреля 2004 года
mustlive
37 / / 27.03.2004
Хотелось бы увидеть описание таблицы mn. И, скорее всего, проблема при вставке полей типа date и time, попробуй для начала вставить без них, и напиши о результатах
357
09 апреля 2004 года
Тимофей
112 / / 20.02.2000
Я уже нашел ошибку.

Чтобы это работало, таблица должна отвечать следующим условиям:

* Она должна уже быть создана командой CREATE TABLE.
* Тимпы столбцов должны совпадать ( причем
они не должны иметь одинаковых имен ).


Только вот cast( substring(z.ctime from 1 for 2)||':'||
substring(z.ctime from 3 for 2)||':'||
substring(z.ctime from 5 for 2) as time)
конвертит в time а записывать не хочет.

Какой должен быть формат time для записи в paradox базу?
4.6K
09 апреля 2004 года
mustlive
37 / / 27.03.2004
Цитата:
Originally posted by Тимофей
Я уже нашел ошибку.

Чтобы это работало, таблица должна отвечать следующим условиям:

* Она должна уже быть создана командой CREATE TABLE.
* Тимпы столбцов должны совпадать ( причем
они не должны иметь одинаковых имен ).


Это уж по-любому :)

Цитата:

Только вот cast( substring(z.ctime from 1 for 2)||':'||
substring(z.ctime from 3 for 2)||':'||
substring(z.ctime from 5 for 2) as time)
конвертит в time а записывать не хочет.

Какой должен быть формат time для записи в paradox базу?



С парадоксом через SQL я не работал, но вообще по опыту работы с датами могут быть следующие варианты:
1. Попробуй заключить твое значение в апострофы, должно получиться '13:15:47'
2. Вполне возможно, что парадокс хранит время в другом формате, отличном от отечественного (в 12-часовом формате например)
3. Возможно, он хранит его вообще в виде double, которое означает кол-во секунд, прошедших с фиксированной даты (например, с 01.01.1970 00:00:00)

Более конкретного ничего посоветовать не могу, это зависит от самой базы и инструментов, которыми ты пихаешь в нее значения.
или

357
09 апреля 2004 года
Тимофей
112 / / 20.02.2000
Цитата:
Originally posted by mustlive

С парадоксом через SQL я не работал, но вообще по опыту работы с датами могут быть следующие варианты:
1. Попробуй заключить твое значение в апострофы, должно получиться '13:15:47'
2. Вполне возможно, что парадокс хранит время в другом формате, отличном от отечественного (в 12-часовом формате например)
3. Возможно, он хранит его вообще в виде double, которое означает кол-во секунд, прошедших с фиксированной даты (например, с 01.01.1970 00:00:00)


2. Это настраивается в БДЕ
3. Это вы про Timestamp поле пишите.
1. Как в sql вставить символ '

4.6K
09 апреля 2004 года
mustlive
37 / / 27.03.2004
Цитата:
Originally posted by Тимофей

2. Это настраивается в БДЕ
3. Это вы про Timestamp поле пишите.
1. Как в sql вставить символ '



2. Хорошо
3. Я же не знаю описания полей твоей БД
1. Попробуй сделать так:

Цитата:
SELECT '''Ни хрена себе, и правда в апострофах! Круто, блин...'''


и тогда поймешь, как это делается :)

4.6K
09 апреля 2004 года
mustlive
37 / / 27.03.2004
я глянул на парадоксальную таблицу, он хранит время числом, не стрингом. как запихать - зависит от того, как работает ПО SQL.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог