Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите преобразовать условие на MS SQL Server T-SQL  [new]
Observer123
Member

Откуда: Болгария
Сообщений: 390
select WORKORDERID, TITLE
from supportcenter.workorder
where  ((COMPLETEDTIME / 3600000)/24) between  (datediff( now(), DATE('1970-1-1')))
  and datediff(DATE_ADD(now(), INTERVAL  1 DAY),DATE('1970-1-1'))

дата сохраняется в особом формате, например 11.9.2009 10:04 -> 1252659848183

Сообщение было отредактировано: 11 сен 09, 13:58
11 сен 09, 13:45    [7647467]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Observer123
Member

Откуда: Болгария
Сообщений: 390
идея в том, чтобы взять все с начало сегодняшнего дня. (Была сделана миграция приложения на MS SQL Server)
11 сен 09, 13:48    [7647483]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
miksoft
Member

Откуда:
Сообщений: 38314
Объясните, пожалуйста, что нужно по-русски и поясните причем тут MySQL.
11 сен 09, 13:59    [7647583]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Observer123
Member

Откуда: Болгария
Сообщений: 390
руский язык мне не родной, извините. :)
Есть приложение, которое работало на MySql (java web). Была такая заявка на MySql синтаксе.
Сейчас после мигрироване на MS SQL того же приложения, нужно поменять синтакс SQL, о такой помощи и прошу:)
11 сен 09, 14:09    [7647663]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
miksoft
Member

Откуда:
Сообщений: 38314
Для тех, кто возьмется отвечать, поясню - datediff считает разницу между датами в целых днях, причем время во входных аргументах игнорируется.
Модератор: Тема перенесена из форума "MySQL".


Сообщение было отредактировано: 11 сен 09, 14:21
11 сен 09, 14:21    [7647773]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
Observer123
руский язык мне не родной, извините. :)

Бывает :)
Observer123

Была такая заявка на MySql синтаксе.
Был такой запрос на MySql синтаксисе :)
11 сен 09, 14:31    [7647860]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
Observer123
дата сохраняется в особом формате, например 11.9.2009 10:04 -> 1252659848183
Это количество секунд с DATE('1970-1-1')?
11 сен 09, 14:33    [7647878]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Le Peace
Observer123
дата сохраняется в особом формате, например 11.9.2009 10:04 -> 1252659848183
Это количество секунд с DATE('1970-1-1')?
Похоже, но точность не та и порядки отличаются...
Наверное, микросекунды какие-то...
select datediff(ss, '19700101', '20090911 10:04') 
      ,1252659848183
      ,log10(datediff(ss, '19700101', '20090911 10:04'))
      ,log10(1252659848183)

----------- --------------------------------------- ---------------------- ----------------------
1252663440  1252659848183                           9.09783440237108       12.0978331570976

(1 row(s) affected)
11 сен 09, 14:39    [7647945]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
я так понимаю что ето линуховое время :))
Если да . то когда то писал вот такое
declare @SecPerDay int, @dt int 

select @SecPerDay = 86400, @dt = 1239261491

select dateadd( day, (@dt / @SecPerDay), '19700101')
-------------------------------------
Jedem Das Seine
11 сен 09, 14:46    [7648001]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Observer123
Member

Откуда: Болгария
Сообщений: 390
тоже думаю, что не секунды
11 сен 09, 14:46    [7648002]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Observer123
Member

Откуда: Болгария
Сообщений: 390
Maxx
я так понимаю что ето линуховое время :))
Если да . то когда то писал вот такое
declare @SecPerDay int, @dt int 

select @SecPerDay = 86400, @dt = 1239261491

select dateadd( day, (@dt / @SecPerDay), '19700101')
-------------------------------------
Jedem Das Seine


подскажите, как исползовать в моем запросе?
11 сен 09, 14:49    [7648033]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
((COMPLETEDTIME / 3600000)/24) between  (datediff( now(), DATE('1970-1-1')))
  and datediff(DATE_ADD(now(), INTERVAL  1 DAY),DATE('1970-1-1'))

как перводиться на русский,вот ето условие ????
я не силен в ф-циях mysql :(
-------------------------------------
Jedem Das Seine
11 сен 09, 14:51    [7648044]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
типа ,дата в таблице должна быть между сегодня и завтра ???
-------------------------------------
Jedem Das Seine
11 сен 09, 14:52    [7648051]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
select DATEDIFF(SS,'19700101',getdate() )
Вот ето ваше NOW() как я понимаю
select DATEDIFF(SS,'19700101',DATEADD(dey, 1,getdate()) )
ето завтра :)
надеюсь ето то что вам нужно?
-------------------------------------
Jedem Das Seine
11 сен 09, 14:59    [7648119]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Maxx,

сорри
select DATEDIFF(SS,'19700101',DATEADD([b]day[/b], 1,getdate()) )
11 сен 09, 15:00    [7648127]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Observer123
Member

Откуда: Болгария
Сообщений: 390
уже приближаемся:)

но точнее нужна проверка на то, регистрирован ли заказ с начало дня, тоест сегодняшный интервал с 00:00 до 24:00
11 сен 09, 15:57    [7648611]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
select DATEDIFF(SS,'19700101',convert(date,getdate()) ) -сегодня без времени

select DATEDIFF(SS,'19700101',CONVERT(date,DATEADD(day, 1,getdate())) ) -завтра без времени
?
-------------------------------------
Jedem Das Seine
11 сен 09, 16:12    [7648713]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Observer123
Member

Откуда: Болгария
Сообщений: 390
Спасибо, вопрос закрыт :)

between   
DATEDIFF(SS,'19700101', Convert(datetime, CONVERT(varchar(8), GETDATE(), 112)) )
and
(DATEDIFF(SS,'19700101', Convert(datetime, CONVERT(varchar(8), GETDATE(), 112)) ) )+ 24 * 3600
11 сен 09, 16:22    [7648780]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Только вот одно непонятно - почему бы не привести дату в БД к типу данных datetime , чтоб не надо было таких еротических выражений, индекс поди тоже работать не будет толком при таких условиях
-------------------------------------
Jedem Das Seine
11 сен 09, 16:40    [7648958]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
miksoft
Member

Откуда:
Сообщений: 38314
Maxx
индекс поди тоже работать не будет толком при таких условиях
Если / 3600000)/24 убрать (перенести в правую часть), то должен.
11 сен 09, 16:42    [7648985]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
miksoft,
я вообще то говорил... будет или нет,ето толко практика покажет,а вто еротических моментов в коде при таком формате хранения даты будет валом :)
11 сен 09, 17:03    [7649163]     Ответить | Цитировать Сообщить модератору
 Re: помогите преобразовать условие на MS SQL Server T-SQL  [new]
Observer123
Member

Откуда: Болгария
Сообщений: 390
Maxx
Только вот одно непонятно - почему бы не привести дату в БД к типу данных datetime , чтоб не надо было таких еротических выражений, индекс поди тоже работать не будет толком при таких условиях
-------------------------------------
Jedem Das Seine



проблем в том что делается дополнителное приложение , изпользующее базу купленого приложения.
Но все равно, разобралзя:) Спасибо.
п.п извините за несовсем правилный руский (могу и по английски -наверно лучше будет :)
16 сен 09, 14:38    [7667654]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить