![]() |
#1 |
Программатор
|
Выбрать запись по полю CreatedDateTime по времени
Нужно по полю CreatedDateTime выбрать количество записей за определенную дату и время. Например за 1 октября с 1000-й до 2000-й секунды. КАК???
![]() Заранее спасибо ![]() |
|
![]() |
#2 |
Модератор
|
По всей базе? MS SQL?
С Уважением, Георгий |
|
![]() |
#3 |
Программатор
|
по конкретной таблице. SQL...
|
|
![]() |
#4 |
Программатор
|
просто после трешки как то сложно переключится на такое...
|
|
![]() |
#5 |
Участник
|
X++: startDateTime = DateTimeUtil::newDateTime(transdate, 1000); endDateTime = DateTimeUtil::newDateTime(transdate, 2000); |
|
![]() |
#6 |
Программатор
|
охохох
|
|
![]() |
#8 |
Программатор
|
чота туплю, а если выбирать просто все записи c CreatedDateTime == TransDate?
|
|
![]() |
#10 |
Программатор
|
хотелось бы увидеть while select
![]() |
|
![]() |
#11 |
Участник
|
Player1, Ваш запрос сложно, но это не зависит от типа данных, и это офф-топик, поэтому я его проигнорирую.
Sada, я чего-то не пойму, в чем загвоздка? ice вроде все правильно написал, в рамках одной даты сделать фильтр по времени довольно просто. |
|
![]() |
#12 |
Программатор
|
проблема в левом полушарии. Ну затык у меня.
есть код X++: while select forUpdate sysUserLogGlobal where sysUserLogGlobal.createdDate >= fromDate - 1 && sysUserLogGlobal.createdDate <= toDate && sysUserLogGlobal.LogoutDate == dateNull() && sysUserLogGlobal.LogoutTime == 0 && sysUserLogGlobal.Type == SysLogType::Login && sysUserLogGlobal.ClientType == ClientType::Client ![]() |
|
![]() |
#13 |
Участник
|
Вроде вот такое у меня работает, если я правильно понял и Вы хотите выбрать активные сессии:
X++: static void Job2(Args _args) { SysUserLog sysUserLogGlobal; utcDateTime fromDate = DateTimeUtil::getSystemDateTime(); utcDateTime toDate = DateTimeUtil::newDateTime(mkDate(27, 10, 2012), 0); while select forUpdate sysUserLogGlobal where sysUserLogGlobal.createdDateTime >= DateTimeUtil::addDays(fromDate, -1) && sysUserLogGlobal.createdDateTime <= toDate && sysUserLogGlobal.LogoutDateTime == DateTimeUtil::minValue() && sysUserLogGlobal.Type == SysLogType::Login && sysUserLogGlobal.ClientType == ClientType::Client { info(sysUserLogGlobal.UserId); } } |
|
|
За это сообщение автора поблагодарили: Sada (6). |
![]() |
#14 |
Программатор
|
воооот теперь я вижу почти все что хочу. СПАСИБО !!!
|
|
![]() |
#15 |
Участник
|
Цитата:
Сообщение от kashperuk
![]() Вроде вот такое у меня работает, если я правильно понял и Вы хотите выбрать активные сессии:
X++: static void Job2(Args _args) { SysUserLog sysUserLogGlobal; utcDateTime fromDate = DateTimeUtil::getSystemDateTime(); utcDateTime toDate = DateTimeUtil::newDateTime(mkDate(27, 10, 2012), 0); while select forUpdate sysUserLogGlobal where sysUserLogGlobal.createdDateTime >= DateTimeUtil::addDays(fromDate, -1) && sysUserLogGlobal.createdDateTime <= toDate && sysUserLogGlobal.LogoutDateTime == DateTimeUtil::minValue() && sysUserLogGlobal.Type == SysLogType::Login && sysUserLogGlobal.ClientType == ClientType::Client { info(sysUserLogGlobal.UserId); } } ![]() X++: void func(date fromDate, date toDate) { SysUserLog sysUserLogGlobal; ; while select forUpdate sysUserLogGlobal where sysUserLogGlobal.createdDateTime >= datetobeginUtcDateTime(fromDate-1, DateTimeUtil::getUserPreferredTimeZone()) && sysUserLogGlobal.createdDateTime <= datetoendUtcDateTime(toDate, DateTimeUtil::getUserPreferredTimeZone()) && sysUserLogGlobal.LogoutDateTime == DateTimeUtil::minValue() /*или utcDateTimeNull() или просто !sysUserLogGlobal.LogoutDateTime*/ && sysUserLogGlobal.Type == SysLogType::Login && sysUserLogGlobal.ClientType == ClientType::Client { } }
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Sada (6). |
![]() |
#16 |
Программатор
|
щас попробуем-с
![]() |
|
![]() |
#17 |
Участник
|
Ню, я и не пытался его сделать аналогичным
![]() О чем явно сигнализирует 0 у меня в toDate в качестве времени. |
|
![]() |
#18 |
Программатор
|
у меня там зато не ноль
![]() |
|
Теги |
datetime, select |
|
|