как работать с timestamp
От: 4erniyPlasch Россия  
Дата: 26.07.06 06:53
Оценка:
СУБД MSSQL.

Считал значение timstamp — получил массив из 8 байт. Что мне с ним делать? Будет нормально если я его к int или строке приведу приведу или нет?
Re: как работать с timestamp
От: DarkSid Россия  
Дата: 26.07.06 07:20
Оценка:
Здравствуйте, 4erniyPlasch, Вы писали:

P>СУБД MSSQL.


P>Считал значение timstamp — получил массив из 8 байт. Что мне с ним делать? Будет нормально если я его к int или строке приведу приведу или нет?

На стороне сервера я делаю одно из преобразований: cast(TS as datetime),cast(TS as int)
Re: как работать с timestamp
От: Lloyd Россия  
Дата: 26.07.06 07:21
Оценка:
Здравствуйте, 4erniyPlasch, Вы писали:

P>СУБД MSSQL.


P>Считал значение timstamp — получил массив из 8 байт. Что мне с ним делать? Будет нормально если я его к int или строке приведу приведу или нет?


Для timestamp-а никаких операций кроме сравнения с другим timestamp-ом делть не надо, так что не совсем понятно зачем тебе приводить его к чему-то?
Re[2]: как работать с timestamp
От: 4erniyPlasch Россия  
Дата: 26.07.06 07:44
Оценка:
Здравствуйте, Lloyd, Вы писали:
L>Для timestamp-а никаких операций кроме сравнения с другим timestamp-ом делть не надо, так что не совсем понятно зачем тебе приводить его к чему-то?


Дык, чтобы сравнить. Мне его надо куда-то считать, потом считанное уже сравнивать. Считывать мне удобнее в int, чтобы проблем с форматом даты не иметь...
Re[3]: как работать с timestamp
От: Lloyd Россия  
Дата: 26.07.06 07:55
Оценка: +1
Здравствуйте, 4erniyPlasch, Вы писали:

P>Дык, чтобы сравнить. Мне его надо куда-то считать, потом считанное уже сравнивать. Считывать мне удобнее в int, чтобы проблем с форматом даты не иметь...


Ну так и сравнивай 8 байт. Честно говоря я даже не представляю как ты собираешься 8 байт в int запихнуть. А о том, что timestamp имеет отношение к дате лучше вообще забыть.
Re[4]: как работать с timestamp
От: 4erniyPlasch Россия  
Дата: 26.07.06 08:15
Оценка:
Здравствуйте, Lloyd, Вы писали:
L>Ну так и сравнивай 8 байт. Честно говоря я даже не представляю как ты собираешься 8 байт в int запихнуть. А о том, что timestamp имеет отношение к дате лучше вообще забыть.

В int запихивается моментально — на стороне сервера convert(int,myfield). В datetime тоже самое.

Вас смущает, что там 8 байт, а не 4? Так int тоже разный бывает...
Re[5]: как работать с timestamp
От: Lloyd Россия  
Дата: 26.07.06 08:21
Оценка:
Здравствуйте, 4erniyPlasch, Вы писали:

P>В int запихивается моментально — на стороне сервера convert(int,myfield). В datetime тоже самое.


Осталось выяснить зачем.

P>Вас смущает, что там 8 байт, а не 4? Так int тоже разный бывает...


Не знаю как у тебя, а у меня int имеет вполне конкретный размер (4 байта).
Re: как работать с timestamp
От: _d_m_  
Дата: 26.07.06 08:23
Оценка:
Здравствуйте, 4erniyPlasch, Вы писали:

P>СУБД MSSQL.


P>Считал значение timstamp — получил массив из 8 байт. Что мне с ним делать? Будет нормально если я его к int или строке приведу приведу или нет?


timestamp — binary(8) никакого отношения к дате и времени не имеет. Правильнее будет использовать синоним rowversion. Его вообще не надо преобразовывать, т.к. есть смысл сравнивать его только с binary(8), т.е. с другим сохраненным значением timestamp или результатом ф-ции @@dbts
Re[6]: как работать с timestamp
От: Аноним  
Дата: 26.07.06 08:46
Оценка: -1
Здравствуйте, Lloyd, Вы писали:

L>Не знаю как у тебя, а у меня int имеет вполне конкретный размер (4 байта).

А это смотря какая версия сервака стоит на машине (64bit или 32bit)
Re[7]: как работать с timestamp
От: Lloyd Россия  
Дата: 26.07.06 08:50
Оценка: 6 (1) :)))
Здравствуйте, Аноним, Вы писали:

А>А это смотря какая версия сервака стоит на машине (64bit или 32bit)

идите в BOL.
Re[8]: как работать с timestamp
От: _d_m_  
Дата: 26.07.06 08:56
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Аноним, Вы писали:


А>>А это смотря какая версия сервака стоит на машине (64bit или 32bit)

L>идите в BOL.


Послал на три буквы! Зачот
Re[6]: как работать с timestamp
От: 4erniyPlasch Россия  
Дата: 26.07.06 09:41
Оценка:
Здравствуйте, Lloyd, Вы писали:
L>Не знаю как у тебя, а у меня int имеет вполне конкретный размер (4 байта).

Да у меня тоже — просто 2^4 это гораздо больше чем мне надо, так что до 2^8 дело не дойдет...
Re[2]: как работать с timestamp
От: kon_v_palto  
Дата: 26.07.06 09:47
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>Здравствуйте, 4erniyPlasch, Вы писали:


___>timestamp — binary(8) никакого отношения к дате и времени не имеет. Правильнее будет использовать синоним rowversion. Его вообще не надо преобразовывать, т.к. есть смысл сравнивать его только с binary(8), т.е. с другим сохраненным значением timestamp или результатом ф-ции @@dbts


Это не совсем правда, timespam это безнаковое 64 битное целое, чем больше это число тем позже был получин timespam. Из операций часто полезно использовать min, max, >, <, =.
Re[4]: как работать с timestamp
От: 4erniyPlasch Россия  
Дата: 26.07.06 09:48
Оценка:
Здравствуйте, Lloyd, Вы писали:
L>Ну так и сравнивай 8 байт. Честно говоря я даже не представляю как ты собираешься 8 байт в int запихнуть. А о том, что timestamp имеет отношение к дате лучше вообще забыть.

Приведу цитату одного мудреца из др. форума:

Re[7]: как работать с timestamp
От: Lloyd Россия  
Дата: 26.07.06 09:49
Оценка:
Здравствуйте, 4erniyPlasch, Вы писали:

L>>Не знаю как у тебя, а у меня int имеет вполне конкретный размер (4 байта).


P>Да у меня тоже — просто 2^4 это гораздо больше чем мне надо, так что до 2^8 дело не дойдет...

Что такое 2^4? 8 байт — это 2^(8*8).
Re[3]: как работать с timestamp
От: _d_m_  
Дата: 26.07.06 09:57
Оценка:
Здравствуйте, kon_v_palto, Вы писали:

__>Здравствуйте, _d_m_, Вы писали:


___>>Здравствуйте, 4erniyPlasch, Вы писали:


___>>timestamp — binary(8) никакого отношения к дате и времени не имеет. Правильнее будет использовать синоним rowversion. Его вообще не надо преобразовывать, т.к. есть смысл сравнивать его только с binary(8), т.е. с другим сохраненным значением timestamp или результатом ф-ции @@dbts


__>Это не совсем правда, timespam это безнаковое 64 битное целое, чем больше это число тем позже был получин timespam. Из операций часто полезно использовать min, max, >, <, =.


Эээ... Так где я сказал "не совсем правду"? rowversion представлен типом binary(8) (ссылкой тыкать?), что в принципе и представляет из себя 64 битное беззнаковое целое.

Кстати, полезно для чего? Для здоровья?
Re[4]: как работать с timestamp
От: kon_v_palto  
Дата: 27.07.06 10:19
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>Здравствуйте, kon_v_palto, Вы писали:


___>Эээ... Так где я сказал "не совсем правду"? rowversion представлен типом binary(8) (ссылкой тыкать?), что в принципе и представляет из себя 64 битное беззнаковое целое.


___>"timestamp — binary(8) никакого отношения к дате и времени не имеет."

чем больше это число тем позже был получин timespam
___>"Его вообще не надо преобразовывать, т.к. есть смысл сравнивать его только с binary(8)"
А операции больше меньше для binary есть, и в клиенте с Byte[] работать очень удобно.

___>Кстати, полезно для чего? Для здоровья?


Ну например для выборки обновлений из базы вроде
SELECT * FROM "Table" WHERE "ts" > @max_ts

где "ts" столбец timestamp, @max_ts максимальное значение "ts" данных сохраненных на клиенте. Конечно проблема с удаленными строками, ну думаю сам догадаешся как ее разрешить.
Re[5]: как работать с timestamp
От: Lloyd Россия  
Дата: 27.07.06 10:30
Оценка:
Здравствуйте, 4erniyPlasch, Вы писали:

L>>Ну так и сравнивай 8 байт. Честно говоря я даже не представляю как ты собираешься 8 байт в int запихнуть. А о том, что timestamp имеет отношение к дате лучше вообще забыть.


P>Приведу цитату одного мудреца из др. форума:


P>

Ты к чему это привел?
Re[8]: как работать с timestamp
От: 4erniyPlasch Россия  
Дата: 27.07.06 13:34
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, 4erniyPlasch, Вы писали:


L>>>Не знаю как у тебя, а у меня int имеет вполне конкретный размер (4 байта).


P>>Да у меня тоже — просто 2^4 это гораздо больше чем мне надо, так что до 2^8 дело не дойдет...

L>Что такое 2^4? 8 байт — это 2^(8*8).

точно. сори заглючило меня
Re[6]: как работать с timestamp
От: 4erniyPlasch Россия  
Дата: 27.07.06 13:35
Оценка:
Здравствуйте, Lloyd, Вы писали:
L>Ты к чему это привел?

К своему вопросу: как работать...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.