Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SQL запрос, сравнение типа ДАТА
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Администратору 1С / Системному администратору / Администратору баз данных > Администрирование и настройка серверов баз данных
Vond
Мир вам. Вот использую запрос чтоб найти нужные данные:
SELECT     *
FROM         Ukraine_RP
WHERE     (Date > '19.05.2009 0:00:00')


а ничего не віходит, ругается СКЛ... Что не так пишу?
zetovich
попробуйте ,что то типа

SELECT     *
FROM         Ukraine_RP
WHERE     Date > '19/05/2009'



необходимо зарегистрироваться для просмотра ссылки
Vond
Хорошая ссылка почитаю, вариант такой подошел
UPDATE      Ukraine_RP
SET         Sale = 4488.123
WHERE       (Date = '2009-05-24')


WHERE (Date = '2009-05-24') SQL требует формат 'yyyy-mm-dd'
zetovich
возможно берет настройки утсановленніе в системе....
Valerka
В таких случаях проще посмотреть в самой таблице, как скуль пишет дату smile.gif
Vond
Цитата(Valerka @ 21.07.09, 10:31) необходимо зарегистрироваться для просмотра ссылки
В таких случаях проще посмотреть в самой таблице, как скуль пишет дату smile.gif


так как она отображается в таблицах вовсе не катит. Формат отображения поля типа ДАТА наверное зависит от настроек сиквела, а вот сравнение это уже как правило. Вот его и уточнял. В ответе выше видно как решается вопрос
Fynjy
Все бегом в MSDN ...
Например сюда ... необходимо зарегистрироваться для просмотра ссылки
Valerka
Цитата(Vond @ 21.07.09, 20:33) необходимо зарегистрироваться для просмотра ссылки
так как она отображается в таблицах вовсе не катит. Формат отображения поля типа ДАТА наверное зависит от настроек сиквела, а вот сравнение это уже как правило.

та это предположение или практикой проверено? smile.gif
Vond
практика
assa62
В 1С:
//==========================================
Функция ВремяНачТрека()
Результат = Формат(начЧЧ,"Ч(0)2.0")+":"+Формат(начММ,"Ч(0)2.0")+":"+Формат(начСС,"Ч(0)2.0");
Возврат Результат;
КонецФункции // ВремяКонТрека()

//==========================================
Функция ВремяКонТрека()
Результат = Формат(конЧЧ,"Ч(0)2.0")+":"+Формат(конММ,"Ч(0)2.0")+":"+Формат(конСС,"Ч(0)2.0");
Возврат Результат;
КонецФункции // ВремяКонТрека()

//==========================================
Функция ПолучитьДатуSQL(ДатаД)
Возврат ""+ДатаГод(ДатаД)+"-"+Сред(ДатаД,4,2)+"-"+Лев(ДатаД,2);
КонецФункции // ПолучитьДатуSQL

//==========================================
Процедура ....
СтрокаЗапроса = " MS_get_Doc_GPSTrack ";
ДобавитьПоле(СтрокаЗапроса,СокрЛП(ВыбАгент.ИмяПокет), 0); // код агента. Если пустое значение, тогда смотрим треки от всех агентов.
ДобавитьПоле(СтрокаЗапроса,ПолучитьДатуSQL(ДатаТрека)+" "+ВремяНачТрека(), 0); // дата и время начала трека
ДобавитьПоле(СтрокаЗапроса,ПолучитьДатуSQL(ДатаТрека)+" "+ВремяКонТрека(), 0); // дата и время конца трека
СтрокаЗапроса = Лев(СтрокаЗапроса, СтрДлина(СтрокаЗапроса) - 1);
tCommand.CommandText = СтрокаЗапроса;
tRecordSet = tCommand.Execute; // запускаем хр. процедуру на выполнение
.....
КонецПроцедуры

в SQL хранимая процедура:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Серебряков Алексей>
-- Create date: <23 июля 2008>
-- Description: <Возвращает GPS координаты за указанный период>
-- =============================================
ALTER procedure [dbo].[MS_get_Doc_GPSTrack](
-- Add the parameters for the stored procedure here
@DeviceId varchar(50), -- имя агента
@StartDate datetime, -- начало периода
@EndDate datetime -- конец периода
)
as begin
select AgentId, DeviceId, CONVERT(varchar(50), DateTimeValue, 127) + 'Z', Latitude, Longitude, dt from dbo.Doc_GPSTrack where DeviceId = @DeviceId and DateTimeValue >= @StartDate and DateTimeValue <= @EndDate order by DateTimeValue
end
mastervut
В зависимости от настроек СКЛ (делаем константу, например, как я обычно делаю):

Функция глДатаОДБЦ(Дата1С=,ФормДаты) Экспорт
Перем д,в,т;
в=""; д=""; т=""; д=Дата(Дата1С);
д=Формат(д,"ДГГГГММДД");
Если ФормДаты=Перечисление.ФорматыДатыСКЛ.ГодМесяцДень Тогда
д=Лев(д,4)+"-"+Сред(д,5,2)+"-"+Прав(д,2);
ИначеЕсли ФормДаты=Перечисление.ФорматыДатыСКЛ.ГодДеньМесяц Тогда
д=Лев(д,4)+"-"+Прав(д,2)+"-"+Сред(д,5,2);
КонецЕсли;
Возврат Строка(д);
КонецФункции
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.