|
Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема
|
Decimal separator TSQL
|
|
Автор | Student (Нерегистриран) |
Публикувано | 27.03.07 11:33 |
|
Здравейте някой да знае как да разбера "Decimal separator" в TSQL ( MsSql ), зависи от Regional Settings на компа но аз бих искал да го видия с "select "
Благодаря предварително!
| |
Тема
|
Re: Decimal separator TSQL
[re: Student]
|
|
Автор | Dess (Нерегистриран) |
Публикувано | 03.04.07 13:21 |
|
select-a se izpylniava na servera, a ti veroiatno pitash za nastroiki na klientskata mashina.
ami niama na4in... survera vryshta danni, i ne se interesuva kak shte gi prezentira klienta.
| |
Тема
|
Re: Decimal separator TSQL
[re: Student]
|
|
Автор |
wqw (АзСъмЖив) |
Публикувано | 03.04.07 17:03 |
|
На сървъра на който е инсталиран MSSQL или на клиентската машина от която се изпълнява заявката?
Ако е на сървъра на кой потребител регионалните настройки?
cheers,
</wqw>
| |
Тема
|
Re: Decimal separator TSQL
[re: Student]
|
|
Автор |
TPECKATA (втрещен) |
Публикувано | 03.04.07 17:15 |
|
Въпреки че не знам за какво би ти свършило работа, да получиш тази информация точно със SQL, опитай с нещо такова:
SELECT SUBSTRING(STR(1/2), 2, 1) AS DecPoint
В Интернете много психов,
Каждый пятый - это псих.
Говори со мною тихо,
Может я один из них.
| |
Тема
|
Re: Decimal separator TSQL
[re: TPECKATA]
|
|
Автор |
wqw (АзСъмЖив) |
Публикувано | 03.04.07 17:49 |
|
Едно (not tested) щеше да е достатъчно да разберем, че не е сигурно дали работи под MSSQL. Това което си искал да кажеш вероятно е това:
SELECT SUBSTRING(CAST(1.0/2 AS VARCHAR), 2, 1) AS DecPoint
Забележи 1.0/2 щото иначе е целочислено. Забележи CAST от ANSI SQL. И последна забележка, не работи понеже не се съобразява с никакви регионални настройки -- нито на default профила, нито на потребителя, чийто security context ползва service-а.
cheers,
</wqw>
| |
Тема
|
Re: Decimal separator TSQL
[re: wqw]
|
|
Автор |
TPECKATA (втрещен) |
Публикувано | 03.04.07 18:30 |
|
Значи в момента нямам подръка MSSQL за да го изтествам, но както си се сетил да ползваш CAST за да обърнеш към char тип, така може да го използваш за да укажеш, че 1 е всъщност константа от тип float
"нещо такова" не ти ли говори, че е not-tested? Или изрично трябва да укажа?
Не ти ли стига да се заяждаш в bgdev, btw.?! Знам че си перфекционист, ама...
...нито ти, нито аз знаем, за какво точно му трябва да разбере какъв е decimal point символа с SQL. А също и дали го интересува този който е на сървъра, или му трябва за да може да подава числови константи в SQL стрингове, които образува динамично в приложението си.
В Интернете много психов,
Каждый пятый - это псих.
Говори со мною тихо,
Может я один из них.Редактирано от TPECKATA на 03.04.07 18:36.
| |
Тема
|
Re: Decimal separator TSQL
[re: TPECKATA]
|
|
Автор |
wqw (АзСъмЖив) |
Публикувано | 03.04.07 18:49 |
|
Не бе, не се заяждам. Малко на ego-trip съм го обърнал и съм извадил ятагана в името на правдата :-))
Btw, нищо лично (тука без да искам написах "нещо":-)) -- не те познавам.
cheers,
</wqw>
| |
Тема
|
Re: Decimal separator TSQL
[re: wqw]
|
|
Автор | Student (Нерегистриран) |
Публикувано | 04.04.07 09:50 |
|
Здравейте първо искам да благодаря за отговорите !
Интересуваше на самия Сървър Decimal Point'a.
Идеята е следната правя
" insert ....
Select *
From OPENROWSET( Excel File ) .... "
в този Excel файл има колони които са decimal с раздалител ',' или '.' в зависимост от настройките на клиента. След това пускам function за тест дали има CharIndex( DecPoint ) > 0 ако да си ги вкарвам ако не Replace и готово.
| |
Тема
|
Re: Decimal separator TSQL
[re: Student]
|
|
Автор | Student (Нерегистриран) |
Публикувано | 04.04.07 10:10 |
|
Само да допълня :
CAST(1.0/2 AS VARCHAR ) работи само ако вече знаеш предварителния резултат.
за да е точно :
SELECT SUBSTRING(CAST(1/2 AS VARCHAR), 2, 1) AS DecPoint = '0'
Ето това е правилното и работи в TSQL :
Select Substring( Cast(Cast(1 as float)/2 as varchar), 2, 1 ) As DecPoint = '.'
Но нямаше да стигна до този извод без да ми дадете напътване
Много много 10х
| |
Тема
|
Re: Decimal separator TSQL
[re: Student]
|
|
Автор |
wqw (АзСъмЖив) |
Публикувано | 04.04.07 12:05 |
|
OPENROWSET като VARCHAR ли ти ги връща? Щото ако не пипаш IMEX се опитва да отгатне какъв е типа на колоната (по първите 10-15 стойности) и вероятно идва като FLOAT. Нали ползваш OLEDB provider-а на JET за тези XLS файлове?
Ако все пак е VARCHAR не е нужно да проверяваш каквото и да било преди да направиш брутално REPLACE(REPLACE(t.MyColumn, ',', @DecPoint), '.', @DecPoint) или подобно :-))
cheers,
</wqw>
| |
|
Страници по тази тема: 1 | 2 | >> (покажи всички)
|
|
|