Имя: Пароль:
1C
 
Можно ли вытащить время из даты в запросе?
0 Tolyas
 
05.08.10
11:59
Надо найти даты со временем 23.59.59 и добавить к ним секунду
1 Ненавижу 1С
 
гуру
05.08.10
11:59
(0) задачу решить можно, время при этом вытаскивать не нужно
2 luckyluke
 
05.08.10
12:01
КОНЕЦПЕРИОДА(<Выражение>, Минута | Час | День | Неделя | Месяц | Квартал | Год | Декада | Полугодие)
3 Ненавижу 1С
 
гуру
05.08.10
12:01
ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
   РеализацияТоваровУслуг.Дата = КОНЕЦПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ)

УПОРЯДОЧИТЬ ПО
   РеализацияТоваровУслуг.МоментВремени
4 Cheater
 
05.08.10
12:01
(0) КонецДня()
5 luckyluke
 
05.08.10
12:04
(4) в запросе нет "КонецДня()"
(0) А вообще:
Функция ГОД
Данная функция предназначена для вычисления номера года из значения типа Дата.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция КВАРТАЛ
Данная функция предназначена для вычисления номера квартала из значения типа Дата. Номер квартала находится в диапазоне 1 – 4.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция МЕСЯЦ
Данная функция предназначена для вычисления номера месяца из значения типа Дата. Номер месяца находится в диапазоне 1 – 12.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция ДЕНЬГОДА
Данная функция предназначена для вычисления дня года из значения типа Дата. День года находится в диапазоне 1 – 366.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция ДЕНЬ
Данная функция предназначена для вычисления дня месяца из значения типа Дата. День месяца находится в диапазоне 1 – 31.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция НЕДЕЛЯ
Данная функция предназначена для вычисления номера недели года из значения типа Дата.
Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция ДЕНЬНЕДЕЛИ
Данная функция предназначена для вычисления дня недели из значения типа Дата. День недели находится в диапазоне 1 (понедельник) – 7 (воскресенье).

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция ЧАС
Данная функция предназначена для вычисления часа суток из значения типа Дата. Час суток находится в диапазоне 0 – 23.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция МИНУТА
Данная функция предназначена для вычисления минуты часа из значения типа Дата. Минута часа находится в диапазоне 0 – 59.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция СЕКУНДА
Данная функция предназначена для вычисления секунды минуты из значения типа Дата. Секунда минуты находится в диапазоне 0 – 59.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция НАЧАЛОПЕРИОДА
Функция предназначена для выделения определенной даты из заданной даты.

Параметры функции – это выражение, имеющее тип Дата, и тип периода – одно из: Минута, Час, День, Неделя, Месяц, Квартал, Год, Декада, Полугодие.
6 73
 
05.08.10
12:06
(5) А КОНЕЦПЕРИОДА куда дел?
7 luckyluke
 
05.08.10
12:07
(6) потерял, ща поправлюсь:

Функция КОНЕЦПЕРИОДА
Функция предназначена для выделения определенной даты из заданной даты.

Параметры функции – это выражение, имеющее тип Дата, и тип периода – одно из: Минута, Час, День, Неделя, Месяц, Квартал, Год, Декада, Полугодие.

Функция ДОБАВИТЬКДАТЕ
Функция предназначена для прибавления к дате некоторой величины.

Первый параметр — исходная дата, к значению которой требуется добавить заданную величину, определяемую вторым и третьим параметрами; выражение, имеющее тип Дата;

Второй параметр – ·тип увеличения – одно из: Секунда, Минута, Час, День, Неделя, Месяц, Квартал, Год, Декада, Полугодие;

Третий параметр – величина, на которую требуется увеличить дату, задаваемую первым параметром; тип ЧИСЛО, (дробная часть игнорируется). Может иметь отрицательное значение.

Если операция вычитания над датами приводит к получению даты, меньшей, чем минимально представимая дата в используемой СУБД, то такая дата в файловом варианте информационной базы будет заменена на нулевую дату. В других СУБД выполнение такой операции приведет к ошибке операции над данными.

Функция РАЗНОСТЬДАТ
Функция предназначена для получения разницы между двумя датами.

Первый параметр — выражение типа Дата;

Второй параметр — выражение типа Дата;

Третий параметр – тип разности, одно из: Секунда, Минута, Час, День, Месяц, Квартал, Год.
8 Tolyas
 
05.08.10
12:10
В выборке так же есть записи со временем 0:00:00 - их трогать не надо.
(5) Год(Дата) - возвращет год, аналогично месяц, день. А вот Час(Дата), Минута(Дата),  Секунда(Дата) - в запросе возвращают дату целиком...
9 Ненавижу 1С
 
гуру
05.08.10
12:11
(8) ппц, готовое решение в (3)
10 ShoGUN
 
05.08.10
12:12
(9) +1
11 Tolyas
 
05.08.10
12:12
(9) Для этого надо делать еще одну временную таблицу, может можно проще?
12 73
 
05.08.10
12:13
Выбор Когда
13 Ненавижу 1С
 
гуру
05.08.10
12:13
(11) интересный ход мысли
14 Tolyas
 
05.08.10
12:14
(73) Рак на горе свиснет? ))
15 Tolyas
 
05.08.10
12:14
(14) -> (12)
16 Tolyas
 
05.08.10
12:15
(9) - тоже дело, спасибо!
17 ShoGUN
 
05.08.10
12:15
(11) Куда уж проще-то?
18 Tolyas
 
05.08.10
12:17
(17) Я хотел узнать есть ли функции работы со временем в запросе. из (6) возвращают вместо времени всю дату.
19 73
 
05.08.10
12:20
(18) Неправда. Ещё разок:

Функция ЧАС
Данная функция предназначена для вычисления часа суток из значения типа Дата. Час суток находится в диапазоне 0 – 23.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция МИНУТА
Данная функция предназначена для вычисления минуты часа из значения типа Дата. Минута часа находится в диапазоне 0 – 59.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.

Функция СЕКУНДА
Данная функция предназначена для вычисления секунды минуты из значения типа Дата. Секунда минуты находится в диапазоне 0 – 59.

Параметр функции – это выражение, имеющее тип Дата.

Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа Число. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.


ЗЫ. И ещё разок: результатом функции будет значение типа Число
20 Ненавижу 1С
 
гуру
05.08.10
12:20
(18) типа "время" в 1С нет, но можно получить его части - ЧАС, МИНУТА, СЕКУНДА
21 Tolyas
 
05.08.10
12:22
(20) ЧАС, МИНУТА, СЕКУНДА - в запросе не работают
22 luckyluke
 
05.08.10
12:23
(21) Ну ты ведь сам провоцируешь на цитирование справки! :)
23 Ненавижу 1С
 
гуру
05.08.10
12:23
(21) у меня работает, ЧЯДНТ?
24 Cheater
 
05.08.10
12:25
ВЫБРАТЬ
   Выбор Когда РеализацияТоваровУслуг.Дата = КОНЕЦПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) Тогда ДОБАВИТЬКДАТЕ(РеализацияТоваровУслуг.Дата, СЕКУНДА, 1)
Иначе Когда РеализацияТоваровУслуг.Дата
Конец КАК МояДата,
25 Ненавижу 1С
 
гуру
05.08.10
12:26
(24) не надо это ему советовать ))
26 luckyluke
 
05.08.10
12:27
(24) Знаешь ли, автор уже сказал что думает по этому поводу в (18)
"Я хотел узнать есть ли функции работы со временем в запросе."
27 Cheater
 
05.08.10
12:29
+(24) Второе Когда лишнее
28 Cheater
 
05.08.10
12:30
(25) а что не так, а то я не проснусь никак?
29 Ненавижу 1С
 
гуру
05.08.10
12:30
(27) если честно, это вообще не в тему
30 luckyluke
 
05.08.10
12:31
(28) Та всё так :) только автору нужно не решение задачи, а функция, которая вытащит ему в запросе время. :)
31 Cheater
 
05.08.10
12:33
будете бить автора жёлтыми книжками до просветления? :))
32 Tolyas
 
05.08.10
12:38
(24) - спасибо! то что нужно! (12) похоже это имел ввиду. (23) в запросе Час(Дата) - возвращает всю дату...
33 73
 
05.08.10
12:39
(32) А ты говорил рак свиснет...
34 Ненавижу 1С
 
гуру
05.08.10
12:41
(32) интересно, а как сформулировано в (0) и не подумаешь ))
35 73
 
05.08.10
12:41
(32)
У всех число, а у тебя дату?
Гранаты проверь.
36 luckyluke
 
05.08.10
12:44
(32)
"запросе Час(Дата) - возвращает всю дату..."
не верю!
На:
Выбрать
   Час(&Дата) КАК Час,
   Минута(&Дата) КАК Минута,
   Секунда(&Дата) КАК Секунда
Проверяй.
37 Tolyas
 
05.08.10
13:55
(36) Затупил - сам не понял как. всё работает!
38 Tolyas
 
05.08.10
14:00
Нашел итересный нюанс: 01.01.2001 0:00:00 < 01.01.2001 23:59:59 - вернет ложь.


ГДЕ
 ВТВторойУровень.Период < ВТВторойУровень.ПериодЗавершения
39 73
 
05.08.10
14:01
(38) Фокусник?
40 Tolyas
 
05.08.10
14:05
(39) Туплю! (38) - бред
41 Tolyas
 
05.08.10
14:10
Вернее магия Алексея Новацкого