AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Прочие вопросы
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.02.2010, 12:10   #1  
nix0root is offline
nix0root
Участник
 
67 / 16 (1) ++
Регистрация: 17.03.2009
Адрес: МО
Работаю на 4-ке, данного типа данных utcDateTime у меня нет
Старый 11.02.2010, 12:19   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от nix0root Посмотреть сообщение
Работаю на 4-ке, данного типа данных utcDateTime у меня нет
Это потому что АХ 4 - старая версия
Данный тип был добавлен в АХ 2009
Старый 11.02.2010, 12:25   #3  
nix0root is offline
nix0root
Участник
 
67 / 16 (1) ++
Регистрация: 17.03.2009
Адрес: МО
В AX 2009 как я понимаю данный тип поля уже является стандартным? Т.е. его можно применить для редактирования т.п.
http://www.axaptapedia.com/UtcDateTime
Старый 12.02.2010, 11:16   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от nix0root Посмотреть сообщение
В AX 2009 как я понимаю данный тип поля уже является стандартным? Т.е. его можно применить для редактирования т.п.
http://www.axaptapedia.com/UtcDateTime
Да, тип стандартный. Более того, в большинстве таблиц, где присутствовали время и дата, была произведена замена на новый тип.
Старый 12.02.2010, 14:51   #5  
nix0root is offline
nix0root
Участник
 
67 / 16 (1) ++
Регистрация: 17.03.2009
Адрес: МО
Жаль что этот тип не откроют в полный доступ в 4-ке, на 2009 мы врятли будем переходить. Поэтому буду юзать прямые запросы к бд с TO_CHAR и TO_DATE
Старый 12.02.2010, 15:15   #6  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от nix0root Посмотреть сообщение
Жаль что этот тип не откроют в полный доступ в 4-ке, на 2009 мы врятли будем переходить. Поэтому буду юзать прямые запросы к бд с TO_CHAR и TO_DATE
Если не секрет, почему врядли переходить будете?
__________________
Ivanhoe as is..
Старый 12.02.2010, 15:23   #7  
nix0root is offline
nix0root
Участник
 
67 / 16 (1) ++
Регистрация: 17.03.2009
Адрес: МО
Во первых это дорого нам встанет.
Во вторых долго.
В третьих ловить ошибки потом в теч длительного времени , тк у нас много своих наработок.
Ну и самое главное у нас ORACLE )))) а на сколько я знаю 2009 уже никак не поддерживает ORA.

Собственно вот почему мы не будем переходить на 2009
Старый 12.02.2010, 15:28   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от nix0root Посмотреть сообщение
буду юзать прямые запросы к бд
Извините конечно, но я так и непонял, что такого делает этот прямой запрос, что нельзя сделать средствами аксапты?
Вы же вот это хотели получить? Или я что-то не понимаю?
Код:
((T.Date > fromDate) || ((T.Date == fromDate) && (T.Time >= fromTime))) &&
((T.Date < toDate) || ((T.Date == toDate) && (T.Time <= toTime)))

У меня, напротив, встречный вопрос. Учитывая, что
Цитата:
Сообщение от kashperuk Посмотреть сообщение
в большинстве таблиц, где присутствовали время и дата, была произведена замена на новый тип.
Как теперь будут выглядеть запросы, в котроых ограничено должно быть только время, но не число?
За это сообщение автора поблагодарили: belugin (1), Gustav (2).
Старый 12.02.2010, 15:36   #9  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Извините конечно, но я так и непонял, что такого делает этот прямой запрос, что нельзя сделать средствами аксапты?
Вы же вот это хотели получить? Или я что-то не понимаю?
Код:
((T.Date > fromDate) || ((T.Date == fromDate) && (T.Time >= fromTime))) &&
((T.Date < toDate) || ((T.Date == toDate) && (T.Time <= toTime)))
Аксаптовскими средствами можно решить все, просто с большими трудозатратами
Например, есть таблицы:
Table1 с полями: FromDate, FromTime, ToDate, ToTime
Table2 с полями: FromDate, FromTime, ToDate, ToTime
известно значение Table2, нужно проверить есть ли пересекающиеся во времени строчки в Table1...

вот такой случай решается в аксапте геморойно
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: nix0root (1).
Старый 30.09.2010, 14:08   #10  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Извините конечно, но я так и непонял, что такого делает этот прямой запрос, что нельзя сделать средствами аксапты?
Вы же вот это хотели получить? Или я что-то не понимаю?
Код:
((T.Date > fromDate) || ((T.Date == fromDate) && (T.Time >= fromTime))) &&
((T.Date < toDate) || ((T.Date == toDate) && (T.Time <= toTime)))
Итак, сегодня в очередной раз напоролся на сравнение периода не только с датами, но и с временем. Код приведенный выше определяет вхождение конкретной даты с конкретным временем в период (например 01.10.2010 10 : 00 входит в период с 01.10.2010 09 : 00 по 01.10.2010 18 : 00).

Мне же нужно определять вхождение периода1 в период2.
Вот конкретный пример:
Период1 = с 01.10.2010 00 : 00 по 01.10.2010 00 : 00 (понятно, что имеются ввиду одни сутки. Конечно можно сказать, что пользователь должен конечное время в периоде1 указать как 23 : 59, но пользователей много, за каждым не уследишь. Да и интуитивно, как мне кажется, человек считает сутками с 00 : 00 до 00 : 00, поэтому скорее всего рано или поздно так и поставит.)

Период2 = с 01.10.2010 09 : 00 по 01.10.2010 18 : 00

Нужно определить входит ли период2 в период1 (визуально понятно, что входит )

После раздумий получился следующий код:
X++:
select 2
            where((2.FromDate   <  1.ToDate    ||
                      (2.FromDate   == 1.ToDate    &&
                      (2.FromTime   <= 1.ToTime    ||
                       1.ToTime        == 0)))                     ||
                       1.ToDate        == dateNull())              &&
                    ((2.ToDate     >  1.FromDate  ||
                     (2.ToDate     == 1.FromDate  &&
                     (2.ToTime     >= 1.FromTime  ||
                      2.ToTime     == 0)))                     ||
                      2.ToDate     == dateNull())
Если кто заметит логическую ошибку, если не трудно напишите
ну а если все ок, то и хорошо, может кому пригодиться, и не придется тратить лишний час на проверку правильности логики запроса
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Теги
ax2009, ax4.0, utcdatetime, время, дата

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptabuilder: How to build Axapta application from XPO files stored in Visual Source Safe. Blog bot DAX Blogs 0 22.11.2006 15:20
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:12.