Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

CURRENT_TIMESTAMP Примери в SQL Server (T-SQL)

CURRENT_TIMESTAMP функцията връща текущата дата и час като datetime стойност. Тази стойност се извлича от операционната система на компютъра, на който се изпълнява екземплярът на SQL Server.

Тази функция е ANSI SQL еквивалент на T-SQL GETDATE() функция, така че можете да използвате която предпочитате. Обърнете внимание, че и двете функции имат по-нисък диапазон от дати и по-ниска дробна точност по подразбиране от T-SQL SYSDATETIME() функция (която връща datetime2(7) стойност).

Тази статия предоставя примери за CURRENT_TIMESTAMP функция, включително как можете да я използвате с други функции, за да върнете стойността, която ви интересува.

Синтаксис

Синтаксисът е така:

CURRENT_TIMESTAMP

Така че просто извиквате тази функция без никакви аргументи.

Пример

Ето основен пример за използване на SELECT оператор за връщане на текущата дата и час от CURRENT_TIMESTAMP :

SELECT CURRENT_TIMESTAMP AS Result;

Резултат:

+-------------------------+
| Result                  |
|-------------------------|
| 2018-06-16 00:06:36.740 |
+-------------------------+

Извличане на част от датата

Ако искате само част от върнатата стойност, можете да използвате DATEPART() за да върнете само тази част от датата/часа, която ви интересува.

Пример:

SELECT DATEPART(month, CURRENT_TIMESTAMP) AS Result;

Резултат:

+----------+
| Result   |
|----------|
| 6        |
+----------+

Ето още един пример, използващ MONTH() функция. Резултатът е същият.

SELECT MONTH(CURRENT_TIMESTAMP) AS Result;

Резултат:

+----------+
| Result   |
|----------|
| 6        |
+----------+

И двете функции връщат текущия месец. Но те ги връщат като цяло число, представляващо номера на месеца.

Ако искате име на месеца върнати вместо това, можете да използвате DATENAME() :

SELECT DATENAME(month, CURRENT_TIMESTAMP) AS Result;

Резултат:

+----------+
| Result   |
|----------|
| June     |
+----------+

Форматирайте датата

Можете също да използвате други функции на T-SQL, за да форматирате датата според изискванията.

Ето пример за използване на FORMAT() функция за форматиране на резултата:

SELECT 
    FORMAT(CURRENT_TIMESTAMP, 'd', 'en-US') AS 'd, en-US',
    FORMAT(CURRENT_TIMESTAMP, 'd', 'en-gb') AS 'd, en-gb',
    FORMAT(CURRENT_TIMESTAMP, 'D', 'en-US') AS 'D, en-US',
    FORMAT(CURRENT_TIMESTAMP, 'D', 'en-gb') AS 'D, en-gb';

Резултат:

+------------+------------+-------------------------+--------------+
| d, en-US   | d, en-gb   | D, en-US                | D, en-gb     |
|------------+------------+-------------------------+--------------|
| 6/16/2018  | 16/06/2018 | Saturday, June 16, 2018 | 16 June 2018 |
+------------+------------+-------------------------+--------------+

Още примери в Как да форматирате датата и часа в SQL Server.

Увеличаване на стойността и намиране на разликата

Можете да използвате функции като DATEDIFF() за да върнете разликата между текущата и друга дата.

Ето пример за използване на DATEADD() за да добавите месец към текущата дата, след което да разберете разликата в дните:

DECLARE @date1 datetime2 = CURRENT_TIMESTAMP;
DECLARE @date2 datetime2 = DATEADD(month, 1, CURRENT_TIMESTAMP);
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Резултат:

+----------+
| Result   |
|----------|
| 30       |
+----------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 начина да получите езика на текущата сесия в SQL Server (T-SQL)

  2. Приоритет на типа данни в SQL Server

  3. SQL сървърът избира отделни редове, използвайки само най-новата стойност

  4. Защо SQL сървърът издава тази грешка:Не може да се вмъкне стойността NULL в колона "id"?

  5. SQUARE() Примери в SQL Server