Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Посоветуйте, пожалуйста, как мне решить такую проблему. Есть переменная @L - число объявленное как Decimal(25,3).Нужно вырезать из него целую и дробную часть. Целую часть мне вырезать удалось, а вот дробную пока нет. Можно, конечно, перевести это число в тип varchar и его ковырять, но у меня так не получилось. P.S. может функция есть какая недокументированная? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 16:31 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
andron81Здравствуйте. Посоветуйте, пожалуйста, как мне решить такую проблему. Есть переменная @L - число объявленное как Decimal(25,3).Нужно вырезать из него целую и дробную часть. Целую часть мне вырезать удалось, а вот дробную пока нет. Можно, конечно, перевести это число в тип varchar и его ковырять, но у меня так не получилось. А отнять о числа "верезанную целую часть" не пробовали ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 16:36 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
Дробная = все число - целая часть, это если без привлечения функций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 16:36 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
GloryА отнять о числа "верезанную целую часть" не пробовали ? Побовал - это первое, что пришло мне на ум. Однака мне надо чтобы например при @L=4551.6 В переменную @L1 забилось значение 4551, а в переменную @L2 забилось значение 6 (но не как не 0.6) ! Пробовал с переводом в varchar баловаться. И вот сложности: если @L =4551.6 , то SELECT cast(@L,varchar) выдаст 4551.600 (правильно 3 знака после запятой объявлено в переменной) и как с ним быть я не сооброжу. Если бы подсказали такой перевод, чтобы выдавал 4551.6 был бы очень благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 16:55 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
andron81 GloryА отнять о числа "верезанную целую часть" не пробовали ? Побовал - это первое, что пришло мне на ум. Однака мне надо чтобы например при @L=4551.6 В переменную @L1 забилось значение 4551, а в переменную @L2 забилось значение 6 (но не как не 0.6) ! Интересная логика, а при 4551.06, что должно быть в @L2 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 17:00 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 17:03 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
andron81 SELECT cast(@L,varchar) выдаст 4551.600 (правильно 3 знака после запятой объявлено в переменной) и как с ним быть я не сооброжу. Если бы подсказали такой перевод, чтобы выдавал 4551.6 был бы очень благодарен. С этим надо бороться в клиентском приложении. Через задание какиз-нибудь масок отображения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 17:08 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
andron81... P.S. может функция есть какая недокументированная? Apparently, 2005 had convert style 128 ( "To remove trailing zeros from a result set when you convert from numeric or decimal data to character data, use the value 128 for style. ") but it wasn't working (Bug ID :FDBK48122) and the BOL was fixed rather than source code. And I totaly agree with Glory that presentation should be done on client. BTW, look how ugly it can be done on TSQL: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 17:26 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
авторSELECT cast(@L,varchar) выдаст 4551.600 (правильно 3 знака после запятой объявлено в переменной) и как с ним быть я не сооброжу. Если бы подсказали такой перевод, чтобы выдавал 4551.6 был бы очень благодарен. а зачем ВЫ вообще к строке приводите числовые данные, на которые можно формат отображения наложить?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 17:29 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
Glory С этим надо бороться в клиентском приложении. Через задание какиз-нибудь масок отображения Боролся если бы это клиентовское приложение было бы написано мной или я бы хотябы имел исходный код на Центуре, а оно написано именно на Центуре. Кстати, вы умеете программировать на Центуре? Просто "МЕГАРАСПРОСТРАНЕННОЕ" средство разработки! :) А в данном случае все, что я могу сделать это повесить триггер на добавление новой строчки в определенной таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 20:38 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
Glory Интересная логика, а при 4551.06, что должно быть в @L2 ? А вот тут действительно Glory несомненно прав(а). Я об этом не подумал и всех ввел в заблуждение. у меня вводится таблица в некотором закрытом клиентовском приложении, туда пользователь вносит числа типа Decimal(25,3). Но он вносит числа в одних единицах измерения, а мне надо в других(причем чтобы перевести в другие единицы надо отковырять данные из базы). Вот я и решил повесить триггер который будет автоматом переводить в эти единицы измерения. А что касается чисел 4551.06 то их ползователь не должен вводить.Код BugsBunny действительно помог. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 21:14 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
У меня есть 2 поля DATETIME, но в одном время, в другом дата: [Date Archived] = '2018-09-10 00:00:00.000' [Time Archived] = '1754-01-01 17:47:21.960' Встал вопрос объединения этих полей в одно. Исходя из соображений, что время это дробная чать числа, я ничего умнее не придумал как написать следующее. [Date Archived]+CAST([Time Archived] AS FLOAT)-FLOOR(CAST([Time Archived] AS FLOAT)) Думаю, с точки зрения производительности это решение "неОчень", но результат следующий: [DateTime Archived] = '2018-09-10 17:47:21.963' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 13:39 |
|
||
|
Вырезать дробную часть числа.
|
|||
|---|---|---|---|
|
#18+
ToOch, datetimefromparts() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 13:47 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=34549123&tid=1689010]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 380ms |

| 0 / 0 |
