Еще раз о RAND в SQL

В предыдущем посте я писал о том, что можно сделать функцию RAND, для генирации в диапазоне, однако при тестировании выяснилось, что она не работает должным образом — выкидываемое значение было больше чем max, в параметре функции.

Новая функция:

SQL: Обертка на RAND()

В SQL есть функция RAND() которая может генерировать псевдослучайные числа.  Например такой запрос:

Вернет:

rand

Дальше можно немного модифицировать выборку. Скажем, нам нужно, что бы выбиралось целое число от 0 до 100, тогда запрос будет таким:

Ну и если от 10 до 100, то таким:

В языке SQL поддерживаются функции, так почему бы не написать обертку на Rand, которая будет генерировать числа от и до нужных нам границ?

Continue reading

SQL: Получить дату и время

Вот несколько способов получить текущую дату и время в Microsoft SQL Server. Можно использовать: CURRENT_TIMESTAMP, GETDATE(), {fn NOW()}

CURRENT_TIMESTAMP
CURRENT_TIMESTAMP это не недетерминированная функция. Представления и выражения, которые ссылаются  на эту колонку не могут быть проиндексированны. CURRENT_TIMESTAMP может использоваться что бы вывести текущую дату и время  в отчетах.

Continue reading