|
v7: 1sqlite - хранение даты |
☑ |
0
ildary
16.05.14
✎
16:59
|
Уважаемые специалисты, подскажите пожалуйста, как при создании внешней таблицы с помошью 1sqlite - выгружать туда поле даты так, чтобы можно было потом в запросе накладывать фильтр типа "WHERE Таб.Date BETWEEN :ДатаНач AND :ДатаКон"?
|
|
1
Ёпрст
гуру
16.05.14
✎
17:02
|
"YYYY-MM-DD HH:MM:SS.SSS"
|
|
2
Ёпрст
гуру
16.05.14
✎
17:02
|
да и .. как угодно
|
|
3
ildary
16.05.14
✎
17:04
|
(1) то есть унутре базы все будет в строковом виде, как в (1), но при этом ДатаНач с 1с-ным типом Дата - позволит это отфильтровать?
|
|
4
ildary
16.05.14
✎
17:06
|
+(3) и еще - как правильнее обьявлять такую колонку - CHARACTER(23)?
|
|
5
Ёпрст
гуру
16.05.14
✎
17:25
|
лучше как CURRENT_DATE
|
|
6
ildary
16.05.14
✎
17:26
|
(5) огромное спасибо!!!
|
|
7
Эмбеддер
16.05.14
✎
17:28
|
(5) это тип что ли такой? может, функция так называется?
|
|
8
Ёпрст
гуру
16.05.14
✎
17:35
|
(7) да не, это значения по-умолчанию..
а так, тип date
|
|
9
Ёпрст
гуру
16.05.14
✎
17:35
|
че-то о своём всё.. думаю.
|
|
10
Ёпрст
гуру
16.05.14
✎
17:37
|
или TEXT ? не помню ужо, надо на топать смотреть, че он там поддерживает.
|
|
11
Ёпрст
гуру
16.05.14
✎
17:57
|
вот так можешь хранить, тупо строкой
//*******************************************
Процедура Сформировать()
ЗагрузитьВнешнююКомпоненту("1sqlite.dll");
база = СоздатьОбъект("SQLiteBase");
Если ФС.СуществуетФайл(КаталогИБ()+"ExtForms\")=0 Тогда
ФС.СоздатьКаталог(КаталогИБ()+"ExtForms\");
КонецЕсли;
Если ФС.СуществуетФайл(КаталогИБ()+"ExtForms\DB_SQLite\")=0 Тогда
ФС.СоздатьКаталог(КаталогИБ()+"ExtForms\DB_SQLite\");
КонецЕсли;
ИмяБД = КаталогИБ()+"ExtForms\DB_SQLite\bazaE.db3";
глМД = СоздатьОбъект("MetaDataWork");
база.Открыть(ИмяБД);
запросSQLLite = база.НовыйЗапрос();
//запросSQLLite.ВыполнитьЗапрос("PRAGMA journal_mode=WAL"); //это прописать, ежели база в терминале
запросSQLLite.ВыполнитьЗапрос("PRAGMA journal_mode=OFF");
ТекстЗапроса ="
|Create table if not EXISTS
|Базёнка (
| ДатаДок varchar(8)
|)";
запросSQLLite.ВыполнитьЗапрос(ТекстЗапроса);
ТекстЗапроса = "
| INSERT INTO Базёнка
| VALUES ('20041102')
|";
запросSQLLite.ВыполнитьЗапрос(ТекстЗапроса);
ТекстЗапроса = "
|Select *,ДатаДок [Дата :Дата] from Базёнка";
ТЗ = запросSQLLite.ВыполнитьЗапрос(ТекстЗапроса);
ТЗ.ВыбрАтьСтроку();
запросSQLLite.ВыполнитьЗапрос("drop table Базёнка");
КонецПроцедуры
|
|
12
orefkov
16.05.14
✎
18:57
|
(0)
YYYYMMDD
|
|