S_Madanska

scalar

Sep 25th, 2020 (edited)
942
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ----------------------------------------------------------------------
  2. --1. Функции за преобразуване на типове
  3. ----------------------------------------------------------------------
  4. --Пояснение към примерите:
  5.     -- expression – валиден израз, резултатът от който да бъде преобразуван;
  6.     -- string_value - nvarchar(4000) стойност, представяща форматираната стойност, която
  7.     --да бъде преобразувана;
  8.     -- data_type – тип, към който се прави преобразуване;
  9.     -- length – опционен параметър за символните типове данни (низове);
  10.     -- style – стил, използван при преобразуване на дати в низове;
  11.     -- culture – опционен низ, който идентифицира как стойността на string_value да бъде форматирана.
  12.  
  13. ----------CAST (expression AS data_type [ ( length ) ]) ;
  14. -- преобразува стойност (от който и да е тип) в специфициран тип
  15. SELECT CAST(10.3496847 AS money)
  16.  
  17. ----------CONVERT (data_type [ ( length ) ] , expression [ , style])
  18. -- преобразува стойност (от който и да е тип) в специфициран тип
  19. SELECT CONVERT(varchar, GETDATE(), 103)
  20. SELECT CONVERT(datetime, '2019-08-25', 105) -- out-of-range value.
  21. SELECT CONVERT(datetime, '2019-25-08', 105)
  22.  
  23. ----------PARSE (string_value AS data_type [ USING culture ])
  24. -- връща резултата от израз, преведен в искания тип данни          
  25. SELECT PARSE('08/17/2019' AS datetime2) AS Result;
  26. SELECT PARSE('Saturday, 17 August 2019' AS date USING 'en-US') AS Result;
  27. SELECT PARSE('Sat, 17 August 2019' AS date USING 'en-US') AS Result;
  28.  
  29. ------------TRY_CAST (expression AS data_type [ ( length ) ])
  30. --връща стойност, подадена към посочения тип данни, ако промяната успее; в противен случай връща null
  31. SELECT TRY_CAST('08/17/2019' AS date);
  32. SELECT TRY_CAST('08/17/2019 09:54:45' AS date) AS Result;
  33. SELECT TRY_CAST('08/17/2019 09:54:45' AS datetime) AS Result;
  34. SELECT TRY_CAST('08/17/2019 09:54:45' AS datetime2) AS Result;
  35.  
  36. ------------TRY_CONVERT (data_type [ ( length ) ], expression [, style ])
  37. --връща стойност, подадена към посочения тип данни, ако промяната успеe; в противен случай връща null.
  38. SELECT TRY_CONVERT(VARCHAR(15),'08/17/2019',101);
  39. SELECT TRY_CONVERT(date, '08/17/2019') AS Result;
  40. SELECT TRY_CONVERT(date, '08/17/2019 10:05:20') AS Result;
  41. SELECT TRY_CONVERT(datetime, '08/17/2019 10:05:20') AS Result;
  42. SELECT TRY_CONVERT(datetime2, '08/17/2019 10:05:20') AS Result;
  43.  
  44. ------------TRY_PARSE (string_value AS data_type [ USING culture ])
  45. --преобразува израз от string към date/time и number types
  46. SELECT TRY_PARSE('08/17/2019' AS date USING 'en-us');
  47. SELECT TRY_PARSE('08/17/2019 10:18:10 AM' AS date USING 'en-us');
  48.  
  49. SELECT TRY_PARSE('08/17/2019 10:18:10 AM' AS datetime USING 'en-us');
  50. SELECT TRY_PARSE('08/17/2019 10:18:10 AM' AS datetime2 USING 'en-us');
  51.  
  52. ----------------------------------------------------------------------
  53. --2. Функции за дата
  54. ----------------------------------------------------------------------
  55. ------------CURRENT_TIMESTAMP – връща системната дата на сървъра в тип DATETIME;
  56. SELECT CURRENT_TIMESTAMP AS current_date_time;
  57. SELECT CONVERT(char(25), CURRENT_TIMESTAMP) as System_date;
  58.  
  59. ------------GETUTCDATE() – връща текущото UTC време, изчислява се от
  60. --операционната система, на която работи сървъра, в тип DATETIME;
  61. select getutcdate() as System_date;
  62.  
  63. ------------GETDATE() – връща системната дата на сървъра в тип DATETIME;
  64. select getdate()
  65.  
  66. ------------SYSDATETIME() – връща системната дата на сървъра в тип DATETIME2;
  67. SELECT CONVERT (date, SYSDATETIME()) as Date,
  68.        CONVERT (time, SYSDATETIME()) as Time,
  69.        SYSDATETIME() as SysDateTime;
  70.  
  71. ------------SYSUTCDATETIME() – връща текущото UTC време на сървъра в тип DATETIME2;
  72. SELECT CONVERT (date, SYSUTCDATETIME()) as Date,
  73.         CONVERT (time, SYSUTCDATETIME()) as Time,
  74.         SYSDATETIME() as SysDateTime,
  75.         SYSUTCDATETIME() as SysUtcDateTime
  76.  
  77. ------------SYSDATETIMEOFFSET() – връща системната дата и часовия пояс на сървъра в тип DATETIMEOFFSET;
  78. SELECT CONVERT (date, SYSDATETIMEOFFSET()) as Date,
  79.         CONVERT (time, SYSDATETIMEOFFSET()) as Time,
  80.         SYSDATETIMEOFFSET() as SysDateTimeOffSet;
  81.  
  82. ------------DATEADD (datepart, number, date) – връща дата, образувана чрез добавяне към
  83. --датата date, number на брой части datepart;
  84. SELECT DATEADD(year, 1, '2020/08/25') AS DateAdd
  85.  
  86. --DATEDIFF (datepart , startdate , enddate) – връща число, разликата в части от вид
  87. --datepart, между две дати;
  88. SELECT DATEDIFF(MONTH, '2019/08/25', '2018/08/25') AS DateDiff
  89.  
  90. --DATEDIFF_BIG (datepart, startdate, enddate) – връща число, разликата в части от вид
  91. --datepart, между две дати, като върнатото число е от тип BIGINT;
  92. SELECT DATEDIFF_BIG(year,        '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  93. SELECT DATEDIFF_BIG(quarter,     '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  94. SELECT DATEDIFF_BIG(month,       '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  95. SELECT DATEDIFF_BIG(dayofyear,   '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  96. SELECT DATEDIFF_BIG(day,         '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  97. SELECT DATEDIFF_BIG(week,        '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  98. SELECT DATEDIFF_BIG(hour,        '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  99. SELECT DATEDIFF_BIG(minute,      '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  100. SELECT DATEDIFF_BIG(second,      '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  101. SELECT DATEDIFF_BIG(millisecond, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
  102.  
  103. /*DATENAME (datepart, date) – връща като низ съдържанието на конкретна част от
  104. дата. Напр. February, ако месеца в date е февруари и datepart е mm;*/
  105. SELECT DATENAME(month, '2017/08/25') AS DatePartString
  106.  
  107. /*DATEPART (datepart, date) – връща като число съдържанието на конкретна част от
  108. дата. Напр. 2, ако месеца в date е февруари и datepart е mm;*/
  109. SELECT DATEPART(year, '2017/08/25') AS DatePartInt
  110.  
  111. --DAY (date) – връща като число ден от определена дата;
  112. SELECT DAY('2014-02-22') as Day_1,
  113.         DAY('2014-02-22 08:23:49.1234567 +07:10') as Day_2,
  114.         DAY(SYSDATETIME()) as Day_3;
  115.  
  116. --MONTH (date) – връща като число месец от определена дата;
  117. SELECT MONTH('2014-03-01') as Month_1,
  118.         MONTH('2014-03-01 08:38:49.1234567 +07:10') as Month_2,
  119.         MONTH(SYSDATETIME()) as Month_3;
  120.  
  121. --YEAR (date) – връща като число година от определена дата.
  122. SELECT YEAR('2014-03-01') as Result_1,
  123.         YEAR('2014-03-01 17:01:25.1234567 +07:10') as Result_2,
  124.         YEAR(SYSDATETIME()) as Result_3;
  125.  
  126. ----------------------------------------------------------------------------------------------------
  127. --3. Математически функции
  128. ----------------------------------------------------------------------------------------------------
  129. --ABS (numeric_expression) – връща абсолютна стойност, променя отрицателните
  130. --стойности в положителни стойности;
  131. SELECT Abs(-243.5) AS AbsNum;
  132.  
  133. --DEGREES (numeric_expression) – връща съответния ъгъл в градуси, по зададени
  134. --радиани;
  135. SELECT DEGREES(1.5);
  136.  
  137. --RAND ([seed]) – генератор на случайни числа между 0 и 1 или цяло ако е указано
  138. --цялото число seed;
  139. SELECT RAND()
  140.  
  141. --ROUND (numeric_expression, length [, function]) – връща числова стойност,
  142. --закръглена до определена дължина или точност;
  143. SELECT ROUND(235.415, 2) AS RoundValue;
  144.  
  145. --SQRT (float_expression) – връща корен квадратен на зададеното число;
  146. SELECT SQRT(121);
  147.  
  148. --PI() – връща стойността на числото Пи.
  149. SELECT pi() as [Pi number]
  150.  
  151. --SQUARE (float_expression) – връща квадрат на посочената стойност;
  152. SELECT SQUARE(11);
  153.  
  154. --POWER (float_expression , y) – връща стойността на посоченото число на посочената
  155. --степен;
  156. SELECT POWER(4, 2)
  157.  
  158. ----------------------------------------------------------------------------------------------------
  159. --4. Функции за работа с низове
  160. ----------------------------------------------------------------------------------------------------
  161.  
  162. --CONCAT (string_value1, string_value2 [, string_valueN])
  163. -- – връща низ, който е резултат от конкатенацията
  164. -- или сливането на два или повече низа;
  165. SELECT CONCAT ('Ivan', ' ','Asenov') AS FullName;
  166. --LEN (string_expression) – връща броя символи в низа;
  167.  
  168. --LTRIM (character_expression) – премахва интервалите в началото на низа;
  169. SELECT LTRIM('          Four spaces are after the period in this sentence.            ') + 'Next string.'
  170. --RTRIM (character_expression) – премахва интервалите в края на низа;
  171. SELECT RTRIM('          Four spaces are after the period in this sentence.            ') + 'Next string.'
  172. --TRIM(character_expression) – премахва интервалите в началото и края на низа;
  173. SELECT TRIM('          Four spaces are after the period in this sentence.            ') + 'Next string.'
  174.  
  175. --REPLACE (string_expression, string_pattern , string_replacement) – заменя всички
  176. --съвпадения на определен низ с друг низ;
  177. SELECT REPLACE('abcD','abc','3');
  178.  
  179. --REVERSE (character_expression) – обръща низа;
  180. SELECT REVERSE('SQL Tutorial')
  181.  
  182. --SUBSTRING (expression, start, length) – връща част от символен или бинарен израз;
  183. SELECT SUBSTRING('SQL Tutorial', 2, 3) AS ExtractString
  184.  
  185. --LOWER (character_expression) – връща низа, като преобразува главните букви в малки;
  186. SELECT LOWER('SQL Tutorial is FUN!')
  187. --UPPER (character_expression) – връща низа, като преобразува малките букви в главни;
  188. SELECT UPPER('SQL Tutorial is FUN!')
  189.  
  190. ----------------------------------------------------------------------------------------------------
  191. --5.    Системни функции
  192. ----------------------------------------------------------------------------------------------------
  193. --ISNULL (expression, replacement) – ако параметърът expression бъде изчислен до
  194. --NULL, той се заменя от израза replacement;
  195. SELECT ISNULL(NULL, 'W3Schools.com');
  196.  
  197. --ISNUMERIC (expression) – връща 1, ако изразът се изчислява до числов тип, и 0 - в противен случай;
  198. SELECT ISNUMERIC(4567);
  199.  
  200. --IIF (boolean_expression, true_value, false_value) – изчислява първия аргумент и връща
  201. --втория аргумент, ако първият аргумент е true, в противен случай връща втория аргумент;
  202. SELECT IIF(500<1000, 'YES', 'NO');
  203.  
  204. --HOST_NAME() – връща името на работната станция;
  205. --select HOST_NAME() as Host_name;
  206.  
  207. --HOST_ID() – връща идентификатора на работната станция. Идентификационният
  208. --номер на работната станция е идентификационният номер на процеса (PID) на
  209. --приложението на клиентския компютър, който се свързва към SQL Server.
  210. --select HOST_ID() as Host_number;
  211.  
  212. ----любознателните могат да намерят още примери тук: tsql.info;  w3schools.com
  213.  
RAW Paste Data Copied