|
Как округлить в запросе в меньшую сторону | ☑ | ||
|---|---|---|---|---|
|
0
Jasnaja
29.12.09
✎
15:00
|
Как в тексте запроса округлить в меньшую сторону
|
|||
|
1
gr13
29.12.09
✎
15:01
|
в общем модуле процедуру, в которой описать это округление и вызывать из запроса
|
|||
|
2
Jasnaja
29.12.09
✎
15:02
|
например?
|
|||
|
3
Serg_1960
29.12.09
✎
15:03
|
(0) Баааааааян... "Учу пользоваться поиском. Дорого" (не помню чьё)
|
|||
|
4
IronDemon
29.12.09
✎
15:03
|
(1) Ты ничего не перепутал?
|
|||
|
5
Kreont
29.12.09
✎
15:03
|
отнять 0.5 (0,05; 0,005) и округлить как обычно :)
|
|||
|
6
mikecool
29.12.09
✎
15:04
|
выразить(ЧтоОкругляем - 0.5 как число(15,0))
|
|||
|
7
Serg_1960
29.12.09
✎
15:07
|
(4) для СКД подсказал(?)
|
|||
|
8
DUDE
29.12.09
✎
15:07
|
а фотку спросить? :)
|
|||
|
9
Serg_1960
29.12.09
✎
15:10
|
(6) Автор забыл уточнить до какого знака округлять. Можно пока пофлудить :)
|
|||
|
10
Икогнито
29.12.09
✎
15:13
|
Выразить КАК ЧИсло (разрядность)
|
|||
|
11
los_hooliganos
29.12.09
✎
15:14
|
(0) это называется не округление, а усечение. кури мануалы.
УСЕЧЬ(150.75, 0, 1) результат: 150 |
|||
|
12
Rico_1C
29.12.09
✎
15:16
|
Зачем в запросе?!..
При выводе/получен форматом.. |
|||
|
13
los_hooliganos
29.12.09
✎
15:18
|
(12) да?? а если мне надо в запросе арифимическую операцию сделать и в зависимости от результата сделать ВЫБОР КОГДА
|
|||
|
14
Rico_1C
29.12.09
✎
15:21
|
(13) Больще НИчего НЕнадо?!.. ;))
|
|||
|
15
EasyRider
29.12.09
✎
15:28
|
(11)Извиняюсь,но для меня "Усечь" - это что-то новое.В СП не нашел ничего.Не дадите ссылку почитать где про эту функцию?
|
|||
|
16
Serg_1960
29.12.09
✎
15:30
|
Вот, моё любимое в запросе с отбрасыванием значений "после запятой" :)
Запрос = Новый Запрос("ВЫБРАТЬ РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), СЕКУНДА, ЧислоСДробнойЧастью), СЕКУНДА) КАК ЧислоБезДробнойЧасти"); |
|||
|
17
ptiz
29.12.09
✎
15:30
|
ВЫБОР КОГДА Ч = ВЫРАЗИТЬ(Ч КАК ЧИСЛО(15,0)) ТОГДА Ч ИНАЧЕ ВЫРАЗИТЬ(Ч - 0.5 КАК ЧИСЛО(15)) КОНЕЦ
|
|||
|
18
Serg_1960
29.12.09
✎
15:33
|
(17) ВЫРАЗИТЬ(НЕ МОГУ) КАК СКУЧНОЕ РЕШЕНИЕ :))
|
|||
|
19
los_hooliganos
29.12.09
✎
15:39
|
Мдя... а кто-то мне втирал что язык запросов в 8.х полноценный т-скуль)))
(15) Синтаксис ROUND ( numeric_expression , length [ ,function ] ) Аргументы numeric_expression Выражение категории типа точных числовых или приблизительных числовых данных, за исключением типа данных bit. length Точность, до которой необходимо округлять значение аргумента numeric_expression. Аргумент length должен быть выражением типа tinyint, smallint или int. Когда аргумент length является положительным числом, numeric_expression округляется до числа десятичных разрядов, указанных в аргументе length. Когда length является отрицательным числом, numeric_expression округляется слева от точки, отделяющей десятичную дробь от целого числа, как указано в length. function Тип операции, которую необходимо выполнить. Аргумент function должен иметь тип tinyint, smallint или int. Когда аргумент function опускается или имеет значение 0 (значение по умолчанию), аргумент numeric_expression округляется. Когда указывается значение, не равное 0, numeric_expression усекается. Типы возвращаемых данных Возвращает тот же тип, что и выражение numeric_expression. Замечания Функция ROUND всегда возвращает значение. Если аргумент length имеет отрицательное значение и больше числа знаков до точки, отделяющей десятичную дробь от целого числа, ROUND возвращает 0. Пример Результат ROUND(748.58, -4) 0 Функция ROUND возвращает округленное значение выражения numeric_expression независимо от типа данных, когда length является отрицательным числом. Примеры Результат ROUND(748.58, -1) 750.00 ROUND(748.58, -2) 700.00 ROUND(748.58, -3) 1000.00 Примеры A. Использование функции ROUND и приближения Следующий пример показывает два выражения, которые демонстрируют, используя ROUND, что последний знак всегда является приближением. Копировать код SELECT ROUND(123.9994, 3), ROUND(123.9995, 3) GO Ниже приводится результирующий набор. Копировать код ----------- ----------- 123.9990 124.0000 Б. Использование функции ROUND и округляющих аппроксимаций В следующем примере показаны округление и аппроксимация. Копировать код SELECT ROUND(123.4545, 2); GO SELECT ROUND(123.45, -2);GO Ниже приводится результирующий набор. ---------- 123.4500 (1 row(s) affected) -------- 100.00 (1 row(s) affected) В. Использование функции ROUND для усечения В следующем примере используются две инструкции SELECT для демонстрации различия между округлением и усечением. Первая инструкция округляет результат. Вторая инструкция усекает результат. Копировать код SELECT ROUND(150.75, 0); GO SELECT ROUND(150.75, 0, 1); GO Ниже приводится результирующий набор. Копировать код -------- 151.00 (1 row(s) affected) -------- 150.00 (1 row(s) affected) |
|||
|
20
EasyRider
29.12.09
✎
15:46
|
(19)Такой функции в общем-то нет в 1с-ном языке запросов?Я правильно понял?
|
|||
|
21
los_hooliganos
29.12.09
✎
15:55
|
(20) да, но я почему то думал что есть.
|
|||
|
22
los_hooliganos
29.12.09
✎
15:55
|
(21) в т-скл точно есть.
|
|||
|
23
НЕА123
29.12.09
✎
16:15
|
ВЫРАЗИТЬ(Ч + 0.5 КАК ЧИСЛО(15)) - 1
|
|||
|
24
НЕА123
29.12.09
✎
16:16
|
ну, а самое чистое тут: (16).
|
|||
|
25
Ksandr
29.12.09
✎
16:20
|
про УСЕЧЬ - шутка?
|
|||
|
26
6tuf
29.12.09
✎
20:34
|
(25) конечно есть! а еще есть функция ОТРЕЗАТЬ_Н***Й
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |