|
|
|
Как к дате прибавить часы?
|
|||
|---|---|---|---|
|
#18+
Таблица Waybill, в ней поля IDWaybill (Integer), Date, Datetime (smalldatetime). Есть триггер: Create Trigger Waybill_Datetime On dbo.Waybill For Insert, Update As If Update (Date) begin update Waybill set Waybill.DateTime = Inserted.Date+Datepart(Hour,GetDate())/24 from Waybill inner join Inserted on Waybill.IDWaybill = Inserted.IDWaybill end Этот триггер должен при изменении значения в поле Date (там лежит только дата, без часов) записывать в поле Datetime ту же дату + текущий час. Зачем это? Ну если кто спросит, объясню потом. Например, юзер в 10:45 вносит в поле Date значение "23.07.02". В поле Datetime должно появиться "23.07.02 10:00:00" Так вот, в поле Datetime появляется только лишь "23.07.02", без часов. Не работает конструкция set Waybill.DateTime = Inserted.Date + Datepart(Hour,GetDate())/24 к дате без часов не прибавляется дробь!! Причем, если написать set Waybill.DateTime = Inserted.Date + 0.42 то все ОК. Хелп!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2002, 10:41:19 |
|
||
|
Как к дате прибавить часы?
|
|||
|---|---|---|---|
|
#18+
declare @MyDate DateTime set @MyDate='20020723' select @MyDate, DateAdd(hour,10,@MyDate) Надеюсь, идея понятна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2002, 10:48:51 |
|
||
|
Как к дате прибавить часы?
|
|||
|---|---|---|---|
|
#18+
Владимир, спасибо большое. Идею понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2002, 11:05:20 |
|
||
|
Как к дате прибавить часы?
|
|||
|---|---|---|---|
|
#18+
О причине Все дело в этом выражении SELECT Datepart(Hour,GetDate())/24 а вернее в том, к какому типу приводит SQL результат данного выражения, а приводит он его как ни странно к типу int, т.е. без дробной части. И результатом всегда будет 0 Избежать этого можно - либо так SELECT Datepart(Hour,GetDate())/24.00 - либо так SELECT Datepart(Hour,GetDate())/CAST(24 as float) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2002, 13:24:38 |
|
||
|
Как к дате прибавить часы?
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, Glory. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2002, 15:02:44 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32038353&tid=1821619]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 281ms |

| 0 / 0 |
