|
Sqlite long
|
|||
---|---|---|---|
#18+
Как можно хранить числа в числовом формате в sqlite, хотелось бы хранить long значения сейчас хранятся значения в формате integer но переходят в минус. если я буду хранить в real смогу ли я сравнивать их как числа ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 08:47 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
Елдос, real тебе тут точно не нужен. не должно ничего переходить в минус покажи код как ты пишешь в базу long? в api есть два метода sqlite3_column_int() sqlite3_column_int64() http://stackoverflow.com/questions/13832103/sqlite-integer-value-bytes ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 09:01 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
PPAЕлдос, real тебе тут точно не нужен. не должно ничего переходить в минус покажи код как ты пишешь в базу long? в api есть два метода sqlite3_column_int() sqlite3_column_int64() http://stackoverflow.com/questions/13832103/sqlite-integer-value-bytes забыл объяснить что я использую java и там класс Date хранит это значение в миллисекундах что больше диапазона int, потому и переходит в минус, а если я храню в секундах, то есть делю эти милисекунды на 1000 то при обратном воспроизведении в дату показывает дату 1969 года, хотя там даты как и в линукс начинаются с 1970 года, ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 08:20 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
PPA, и еще я пишу это на sqlite для andorid ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 08:21 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
PPA, и еще я не нашел как применять int 64, писать при создании INTEGER(64) или как то по другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 08:23 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
Елдос, В таблице поле называй просто integer - sqlite к этом относится прохладно... в отличии от других баз http://www.sqlite.org/datatype3.html "INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value." а из java при работе с полем бинди туда значение long - у вас ведь он 64 битный? как у тебя int то оказался? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 10:39 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
PPA, я его и не трогаю так и пихаю туда в этом long значении, но он все равно переходит в минус, я думал что в sql такой же диапазон чисел как и в java. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 11:23 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
Елдос, Тогда, вероятно, нужно смотреть либу куда вы пихаете long и почему она превращает ее в int ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 21:32 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
Елдосзабыл объяснить что я использую java и там класс Date хранит это значение в миллисекундах что больше диапазона int, потому и переходит в минус, а если я храню в секундах, то есть делю эти милисекунды на 1000 то при обратном воспроизведении в дату показывает дату 1969 года, хотя там даты как и в линукс начинаются с 1970 года,Может, программирование это не ваше? Год это ~3,14*10^7 секунд, что приведёт к переполнению знакового целого в 2038 году. Приближается, но пока терпимо. Код: java 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2015, 10:26 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, я так и делаю, кроме прибавления пол секунды не очень важно, она эти значения хранит правильно, но подстваляешь эти числа в new Date выдает дату 1969 года. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2015, 14:15 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
Елдосона эти значения хранит правильно, но подстваляешь эти числа в new Date выдает дату 1969 года.Я могу придумать только один вариант, когда это будет неправильно: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2015, 16:38 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
Basil A. SidorovЕлдосона эти значения хранит правильно, но подстваляешь эти числа в new Date выдает дату 1969 года.Я могу придумать только один вариант, когда это будет неправильно: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Код: plaintext 1.
ну у меня так и сделано, подставляю данные из базы умножив их на 1000, а они предварительно были занесены в БД резделенными на 1000, и подставляю в new Date(мсек), а как должно быть правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2015, 06:31 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
Елдоса как должно быть правильно?"Правильно заданный вопрос содержит, как минимум, половину ответа" - благодаря вам я нашёл уже свою ошибку: Код: sql 1.
сначала приводит число типа long к целому, что и вызывает искажение данных. А вот при обратном преобразовании надо сначала привести целое к типу long и только потом умножать на тысячу. Итого: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2015, 13:25 |
|
Sqlite long
|
|||
---|---|---|---|
#18+
Basil A. SidorovЕлдоса как должно быть правильно?"Правильно заданный вопрос содержит, как минимум, половину ответа" - благодаря вам я нашёл уже свою ошибку: Код: sql 1.
сначала приводит число типа long к целому, что и вызывает искажение данных. А вот при обратном преобразовании надо сначала привести целое к типу long и только потом умножать на тысячу. Итого: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: plaintext 1. 2. 3.
да вот тоже как раз до этого додумался благодаря вам! спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2015, 13:47 |
|
|
start [/forum/topic.php?fid=54&msg=38854792&tid=2008716]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 263ms |
total: | 399ms |
0 / 0 |