Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не подскажите аналоги функций  [new]
Иван Абрамов
Member

Откуда:
Сообщений: 319
Вот функции Access SQL, подскажите, плз, аналогичные функции в T-SQL

1. INT(33.9) -возварщает 33
2. VAL("123abc") -возварщает 123
3. FIX
4. FORMAT

Заранее спасибо.
4 сен 09, 14:44    [7618691]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
1 . CAST или CONVERT к INT

а что делают 3 и 4 я ф-ции ?
-------------------------------------
Jedem Das Seine
4 сен 09, 14:48    [7618729]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
2. тоже стандартной нет, помоему,тока самописные
-------------------------------------
Jedem Das Seine
4 сен 09, 14:49    [7618741]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Иван Абрамов
Member

Откуда:
Сообщений: 319
Я так и думал.
4 сен 09, 15:08    [7618914]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Иван Абрамов
Я так и думал.

Учтите, что CAST и CONVERT дадут ошибу при использовании их в качесте замены VAL("123abc")
Придется писать свою VAL.

С уважением, Алексей.
4 сен 09, 15:25    [7619073]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
Иван Абрамов

1. INT(33.9) -возварщает 33
floor
4 сен 09, 16:14    [7619461]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Le Peace
Иван Абрамов

1. INT(33.9) -возварщает 33
floor
SELECT ROUND(33.9,0,1)
4 сен 09, 16:42    [7619661]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Иван Абрамов
Member

Откуда:
Сообщений: 319
floor - это круто! Спасибо, Франция ;)
Судя по описанию, эта фукция совсем для других целей, но прекрасно выполняет данную задачу.

А для VAL нет ли ни у кого подобного трюка?
(Про FIX и FORMAT уж и не надеюсь.)
4 сен 09, 17:05    [7619847]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Иван Абрамов
floor - это круто! Спасибо, Франция ;)
Судя по описанию, эта фукция совсем для других целей, но прекрасно выполняет данную задачу.

А для VAL нет ли ни у кого подобного трюка?
(Про FIX и FORMAT уж и не надеюсь.)
А для -33.9 что должно получиться?
4 сен 09, 17:07    [7619867]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Иван Абрамов
(Про FIX и FORMAT уж и не надеюсь.)
Вас еще в 14:48 просили рассказать про них подробнее
Не все ж тут имеют опыт работы с Access
4 сен 09, 17:09    [7619882]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
aleks2
Guest
Иван Абрамов
floor - это круто! Спасибо, Франция ;)
Судя по описанию, эта фукция совсем для других целей, но прекрасно выполняет данную задачу.

А для VAL нет ли ни у кого подобного трюка?
(Про FIX и FORMAT уж и не надеюсь.)


Научитесь шоли BOL читать?
Mathematical Functions
These scalar functions perform a calculation, usually based on input values provided as arguments, and return a numeric value.

ABS DEGREES RAND
ACOS EXP ROUND
ASIN FLOOR SIGN
ATAN LOG SIN
ATN2 LOG10 SQUARE
CEILING PI SQRT
COS POWER TAN
COT RADIANS

Note Arithmetic functions, such as ABS, CEILING, DEGREES, FLOOR, POWER, RADIANS, and SIGN, return a value having the same data type as the input value. Trigonometric and other functions, including EXP, LOG, LOG10, SQUARE, and SQRT, cast their input values to float and return a float value.


All mathematical functions, except for RAND, are deterministic functions; they return the same results each time they are called with a specific set of input values. RAND is deterministic only when a seed parameter is specified. For more information about function determinism, see Deterministic and Nondeterministic Functions.


See Also

Functions

©1988-2002 Microsoft Corporation. All Rights Reserved.
4 сен 09, 17:10    [7619899]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Иван Абрамов
Member

Откуда:
Сообщений: 319
Microsoft® Visual Basic® Scripting Edition
Int, Fix Functions Language Reference
Version 1

--------------------------------------------------------------------------------

Description
Returns the integer portion of a number.
Syntax
Int(number)
Fix(number)

The number argument can be any valid numeric expression. If number contains Null, Null is returned.

Remarks
Both Int and Fix remove the fractional part of number and return the resulting integer value.
The difference between Int and Fix is that if number is negative, Int returns the first negative integer less than or equal to number, whereas Fix returns the first negative integer greater than or equal to number. For example, Int converts -8.4 to -9, and Fix converts -8.4 to -8.

Fix(number) is equivalent to:

Sgn(number) * Int(Abs(number))

The following examples illustrate how the Int and Fix functions return integer portions of numbers:
MyNumber = Int(99.8) ' Returns 99.
MyNumber = Fix(99.2) ' Returns 99.
MyNumber = Int(-99.8) ' Returns -100.
MyNumber = Fix(-99.8) ' Returns -99.
MyNumber = Int(-99.2) ' Returns -100.
MyNumber = Fix(-99.2) ' Returns -99
4 сен 09, 17:32    [7620036]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Иван Абрамов
Member

Откуда:
Сообщений: 319
Функция FORMAT изменяет представление данных в соответствии с указанным параметром.
(Прошу, пожалуйста, ничего не говорить, что это нужно делать на на уровне СУБД. Иногда как раз именно на уровне СУБД удобнее всего для каких-то последующих целей.)

Format Function Example

This example shows various uses of the Format function to format values using both named formats and user-defined formats. For the date separator (/), time separator (:), and AM/ PM literal, the actual formatted output displayed by your system depends on the locale settings on which the code is running. When times and dates are displayed in the development environment, the short time format and short date format of the code locale are used. When displayed by running code, the short time format and short date format of the system locale are used, which may differ from the code locale. For this example, English/U.S. is assumed.

MyTime and MyDate are displayed in the development environment using current system short time setting and short date setting.

Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#

' Returns current system time in the system-defined long time format.
MyStr = Format(Time, "Long Time")

' Returns current system date in the system-defined long date format.
MyStr = Format(Date, "Long Date")

MyStr = Format(MyTime, "h:m:s") ' Returns "17:4:23".
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Returns "05:04:23 PM".
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Returns "Wednesday,
' Jan 27 1993".
' If format is not supplied, a string is returned.
MyStr = Format(23) ' Returns "23".

' User-defined formats.
MyStr = Format(5459.4, "##,##0.00") ' Returns "5,459.40".
MyStr = Format(334.9, "###0.00") ' Returns "334.90".
MyStr = Format(5, "0.00%") ' Returns "500.00%".
MyStr = Format("HELLO", "<") ' Returns "hello".
MyStr = Format("This is it", ">") ' Returns "THIS IS IT".
4 сен 09, 17:35    [7620056]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
в одном случае дат FORMАT работает как DATEPART
-------------------------------------
Jedem Das Seine
4 сен 09, 17:45    [7620117]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
MyStr = Format("HELLO", "<") ' Returns "hello".
MyStr = Format("This is it", ">") ' Returns "THIS IS IT".

здесь ето LOWER и UPPER
-------------------------------------
Jedem Das Seine
4 сен 09, 17:46    [7620124]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
INT -> FLOOR

-------------------------------------
Jedem Das Seine
4 сен 09, 17:48    [7620132]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
FIX -ближе всего просто CAST к INT как по мне
-------------------------------------
Jedem Das Seine
4 сен 09, 17:52    [7620148]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Иван Абрамов
Member

Откуда:
Сообщений: 319
Спасибо, дорогие :)

Более всего меня интересовало использование FORMAT в контексте преобразования дат к необычным форматам (ну, и чисел тоже),
примеру, Format(MyDate, "dddd, mmm d yyyy") и т.п.

А для аналога VAL("123abc") нельзяли как-то использовать регулярные выражения (LIKE - то врятли тут поможет)? Или на уровне запросов они RegExp не работают?
4 сен 09, 18:01    [7620213]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
да ваиантов масса, поиск по форуму даст 100 решений,да и в факе попомему чет такое есть
-------------------------------------
Jedem Das Seine
4 сен 09, 18:04    [7620225]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Почитал немножко про Visual Basic
Задумался...
Особенно про Val("&HFFFF")

Я рекомендую автору создать assembly на VB.Net, содержащую обертки для этих функций
и внедрить ее в свою БД
Иначе реализация полной совместимости мне представляется крайне трудоемкой
4 сен 09, 18:09    [7620247]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
кста тоже вариант
-------------------------------------
Jedem Das Seine
4 сен 09, 18:16    [7620274]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
GlebZ
Member

Откуда: USA
Сообщений: 284
Иван Абрамов
Спасибо, дорогие :)

Более всего меня интересовало использование FORMAT в контексте преобразования дат к необычным форматам (ну, и чисел тоже),
примеру, Format(MyDate, "dddd, mmm d yyyy") и т.п.

А для аналога VAL("123abc") нельзяли как-то использовать регулярные выражения (LIKE - то врятли тут поможет)? Или на уровне запросов они RegExp не работают?

Ну с этим вполне справляется CONVERT
4 сен 09, 18:22    [7620301]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
GlebZ
Member

Откуда: USA
Сообщений: 284
Я про даты. Ну если только не надо что-то совсем нестандартное.
Водку? Водку - буду!
4 сен 09, 18:23    [7620305]     Ответить | Цитировать Сообщить модератору
 Re: Не подскажите аналоги функций  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
GlebZ
Иван Абрамов
Спасибо, дорогие :)

Более всего меня интересовало использование FORMAT в контексте преобразования дат к необычным форматам (ну, и чисел тоже),
примеру, Format(MyDate, "dddd, mmm d yyyy") и т.п.

А для аналога VAL("123abc") нельзяли как-то использовать регулярные выражения (LIKE - то врятли тут поможет)? Или на уровне запросов они RegExp не работают?

Ну с этим вполне справляется CONVERT

Вы бы проверили прежде чем советы давать!
Как интересно справится CONVERT вместо VAL("123abc")!
А для автора топика мой совет, напишите на T-SQL те функции, которые вы привыкли использовать в Access (в том числе и VAL). Мы в свое время так и поступили, когда переходили с Visual FoxPro на SQL Server.
Суважением, Алексей
5 сен 09, 22:46    [7622373]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить