Post

9 - Tarihler (Dates)

9 - Tarihler (Dates)

9.1: CONVERT kullanarak Tarih ve Saat Biçimlendirmesi

Tarih saat veri türünü biçimlendirilmiş bir dizeye dönüştürmek için CONVERT işlevini kullanabilirsiniz.

SELECT GETDATE() AS [Result] -- 2023-12-24 20:23:55.927

Belirli bir formata dönüştürmek için bazı yerleşik kodları da kullanabilirsiniz:

1
2
DECLARE @convert_code INT = 100
SELECT CONVERT(VARCHAR(30), GETDATE(), @convert_code) AS [Result]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT GETDATE() AS [Result]

SELECT CONVERT(VARCHAR(30), GETDATE(), 100) AS [Result]       --12/25/2023
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 101) AS [Result] --12:21:12
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 102) AS [Result] --12:21:12:890
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 103) AS [Result] --12-25-2023
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 104) AS [Result] --13 ????? ??????? 1445 12:21:12
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 105) AS [Result] --13/06/1445 12:21:12:890PM
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 106) AS [Result] --2023.12.25
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 107) AS [Result] --2023/12/25
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 108) AS [Result] --20231225
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 109) AS [Result] --2023-12-25 12:21:12
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 110) AS [Result] --2023-12-25 12:21:12.890
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 111) AS [Result] --2023-12-25T12:21:12.890
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 112) AS [Result] --25 Dec 2023
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 113) AS [Result] --25 Dec 2023 12:21:12:890
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 114) AS [Result] --25.12.2023
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 120) AS [Result] --25/12/2023
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 121) AS [Result] --25-12-2023
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 126) AS [Result] --Dec 25 2023 12:21:12:890PM
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 127) AS [Result] --Dec 25 2023 12:21:12:890PM
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 130) AS [Result] --Dec 25 2023 12:21PM
UNION SELECT CONVERT(VARCHAR(30), GETDATE(), 131) AS [Result] --Dec 25, 2023

9.2: FORMAT kullanarak Tarih ve Saat Biçimlendirmesi

Version ≥ SQL Server 2012 Fonksiyon FORMAT()

Bunu kullanarak DATETIME alanlarınızı kendi özel VARCHAR formatınıza dönüştürebilirsiniz.

Örnek:

1
2
3
DECLARE @Date DATETIME = '2016-09-05 00:01:02.333'

SELECT FORMAT(@Date, N'dddd, MMMM dd, yyyy hh:mm:ss tt')

Monday, September 05, 2016 12:01:02 AM

Argümanlar

Biçimlendirilen DATETIME’ın aşağıdaki çıktıları almak için sağlanan argümanlar.

‘2016-09-05 00:01:02.333’ için;

ArgümanÇıktı
yyyy2016
yy16
MMMMSeptember
MM09
M9
ddddMonday
dddMon
dd05
d5
HH00
H0
hh12
h12
mm01
m1
ss02
s2
ttAM
tA
fff333
ff33
f3

Ayrıca önceden biçimlendirilmiş bir çıktı oluşturmak için FORMAT() işlevine tek bir argüman da verebilirsiniz:

1
2
3
DECLARE @Date DATETIME = '2016-09-05 00:01:02.333'

SELECT FORMAT(@Date, N'U')

Monday, September 05, 2016 4:01:02 AM

Tek ArgümanÇıktı
DMonday, September 05, 2016
d9/5/2016
FMonday, September 05, 2016 12:01:02 AM
fMonday, September 05, 2016 12:01 AM
G9/5/2016 12:01:02 AM
g9/5/2016 12:01 AM
MSeptember 05
O2016-09-05T00:01:02.3330000
RMon, 05 Sep 2016 00:01:02 GMT
s2016-09-05T00:01:02
T12:01:02 AM
t12:01 AM
UMonday, September 05, 2016 4:01:02 AM
u2016-09-05 00:01:02Z
YSeptember, 2016

Yukarıdaki liste varsayılan en-US kültürünü kullanmaktadır. Üçüncü bir argüman girerek farklı bir kültür belirtilebilir.

1
2
3
DECLARE @Date DATETIME = '2016-09-05 00:01:02.333'

SELECT FORMAT(@Date, N'U', 'zh-cn')

2016年9月5日 4:01:02

9.3: Zaman eklemek ve çıkarmak için DATEADD()

Sözdizimi: DATEADD (datepart, number, datetime_expr)

Bir zaman ölçüsü eklemek için sayının pozitif olması gerekir. Bir zaman ölçüsünü çıkarmak için sayının negatif olması gerekir.

1
2
3
4
5
6
7
8
9
10
11
DECLARE @now DATETIME2 = GETDATE();

SELECT @now; -- 2023-12-25 13:32:13.5470000
SELECT DATEADD(YEAR, 1, @now) -- 2024-12-25 13:32:13.5470000
SELECT DATEADD(QUARTER, 1, @now) -- 2024-03-25 13:32:13.5470000
SELECT DATEADD(WEEK, 1, @now) -- 2024-01-01 13:32:13.5470000
SELECT DATEADD(DAY, 1, @now) -- 2023-12-26 13:32:13.5470000
SELECT DATEADD(HOUR, 1, @now) -- 2023-12-25 14:32:13.5470000
SELECT DATEADD(MINUTE, 1, @now) -- 2023-12-25 13:33:13.5470000
SELECT DATEADD(SECOND, 1, @now) -- 2023-12-25 13:32:14.5470000
SELECT DATEADD(MILLISECOND, 1, @now) -- 2023-12-25 13:32:13.5480000

DATEADD ayrıca datepart parametresindeki kısaltmaları da kabul eder. Bu kısaltmaların kullanımı genel olarak kafa karıştırıcı olabileceğinden tavsiye edilmez (m vs mi, ww vs w, vb.).

9.4: Bir kişinin yaşını hesaplamak için fonksiyon oluşturma

Bu fonksiyon 2 tarihsaat parametresi alacaktır. Doğum tarihi (DateOfBirth) ve kontrol edilecek diğer tarih

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE FUNCTION [dbo].[Calc_Age] (
  @DOB datetime, 
  @calcDate datetime
)
RETURNS int
AS
BEGIN
  DECLARE @age INT

  -- Eğer doğum tarihi kontrol tarihinden büyükse -1 döner
  IF (@calcDate < @DOB )
    RETURN -1
    
  SELECT @age = YEAR(@calcDate) - YEAR(@DOB) +
    CASE 
      WHEN DATEADD(year, YEAR(@calcDate) - YEAR(@DOB), @DOB) > @calcDate THEN -1 
    ELSE 0 
  END
  
  RETURN @age
END

örneğin 1/1/2000 tarihinde doğan birinin bugünkü yaşını kontrol etmek için,

1
SELECT dbo.Calc_Age('2000-01-01', Getdate())

9.5: Geçerli(şuanki) Tarih Saat

Yerleşik GETDATE ve GETUTCDATE işlevlerinin her biri, saat dilimi farkı olmadan geçerli tarih ve saati döndürür. Her iki işlevin dönüş değeri, SQL örneğinin bulunduğu bilgisayarın işletim sistemine bağlıdır. GETDATE’in dönüş değeri, işletim sistemiyle aynı saat dilimindeki geçerli saati temsil eder. GETUTCDATE değeri geçerli UTC saatini temsil eder. Her iki işlev de bir sorgunun SELECT yan tümcesine veya WHERE yan tümcesindeki boolean ifadesinin bir parçası olarak dahil edilebilir.

Örnekler:

1
2
3
SELECT GETDATE() as SystemDateTime, GETUTCDATE() as UTCDateTime

SELECT * FROM MyEvents WHERE EventDate < GETDATE()

Geçerli tarih-saatin farklı varyasyonlarını döndüren birkaç yerleşik işlev daha vardır:

1
2
3
4
5
6
7
SELECT
  GETDATE(),           -- 2023-12-25 13:59:19.547
  GETUTCDATE(),        -- 2023-12-25 10:59:19.547
  CURRENT_TIMESTAMP,   -- 2023-12-25 13:59:19.547
  SYSDATETIME(),       -- 2023-12-25 13:59:19.5507985
  SYSDATETIMEOFFSET(), -- 2023-12-25 13:59:19.5507985 +03:00
  SYSUTCDATETIME()     -- 2023-12-25 10:59:19.5507985

9.6: Bir ayın son gününü almak

DATEADD ve DATEDIFF işlevlerini kullanarak ayın son tarihini döndürmek mümkündür.

1
2
SELECT DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, '2016-09-23') + 1, 0))
-- 2016-09-30 00:00:00.000

Version ≥ SQL Server 2012

EOMONTH işlevi, bir ayın son tarihini döndürmek için daha kısa bir yol sağlar ve isteğe bağlı bir işleve sahiptir.

1
2
3
SELECT EOMONTH('2016-07-21')     --2016-07-31
SELECT EOMONTH('2016-07-21', 4)  --2016-11-30
SELECT EOMONTH('2016-07-21', -5) --2016-02-29

9.7: DateTime’dan yalnızca Tarihi döndür

Birkaç yol:

  1. SELECT CONVERT(Date, GETDATE())
  2. SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
  3. SELECT CAST(GETDATE() AS DATE)
  4. SELECT CONVERT(CHAR(10), GETDATE(), 111)
  5. SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')

4 ve 5 in dönus tipi metin (dize) dir.

9.8: Tarih farklarını hesaplamak DATEDIFF

Sözdizimi:

DATEDIFF (datepart, datetime_expr1, datetime_expr2)

Datetime_expr, datetime_expr2’ye göre geçmişteyse pozitif bir sayı, aksi halde negatif bir sayı döndürür.

1
2
3
4
5
6
7
8
9
10
11
12
DECLARE @now DATETIME2 = GETDATE();
DECLARE @oneYearAgo DATETIME2 = DATEADD(YEAR, -1, @now);

SELECT @now
SELECT @oneYearAgo
SELECT DATEDIFF(YEAR, @oneYearAgo, @now)
SELECT DATEDIFF(QUARTER, @oneYearAgo, @now)
SELECT DATEDIFF(WEEK, @oneYearAgo, @now) 
SELECT DATEDIFF(DAY, @oneYearAgo, @now)
SELECT DATEDIFF(HOUR, @oneYearAgo, @now)
SELECT DATEDIFF(MINUTE, @oneYearAgo, @now)
SELECT DATEDIFF(SECOND, @oneYearAgo, @now)

DATEDIFF, datepart parametresindeki kısaltmaları da kabul eder. Bu kısaltmaların kullanımı genel olarak kafa karıştırıcı olabileceğinden tavsiye edilmez (m vs mi, ww vs w, vb.).

DATEDIFF ayrıca UTC ile SQL Server’ın yerel saati arasındaki farkı belirlemek için de kullanılabilir.

1
SELECT DATEDIFF(hh, getutcdate(), getdate()) as 'CentralTimeOffset'

9.9: DATEPART ve DATENAME

DATEPART, belirtilen tarihsaat ifadesinin belirtilen tarih bölümünü sayısal bir değer olarak döndürür.

DATENAME, belirtilen tarihin belirtilen tarih bölümünü temsil eden bir karakter dizesi döndürür.

DATENAME çoğunlukla ayın adını veya haftanın gününü almak için kullanışlıdır.

Ayrıca tarihsaat ifadesinin yılını, ayını veya gününü elde etmek için şu şekilde davranan bazı kısayol işlevleri de vardır:

Sözdizimi:

1
2
3
4
5
DATEPART ( datepart , datetime_expr )
DATENAME ( datepart , datetime_expr )
DAY ( datetime_expr )
MONTH ( datetime_expr )
YEAR ( datetime_expr )

Örnekler:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DECLARE @now DATETIME2 = GETDATE();

SELECT @now -- 2024-01-18 10:01:26.790
SELECT DATEPART(YEAR, @now) -- 2024
SELECT DATEPART(QUARTER, @now) -- 1
SELECT DATEPART(WEEK, @now) --3
SELECT DATEPART(HOUR, @now) --10
SELECT DATEPART(MINUTE, @now) --1
SELECT DATEPART(SECOND, @now) --26

-- DATEPART ve DATENAME arasındaki fark
SELECT DATEPART(MONTH, @now) --1
SELECT DATENAME(MONTH, @now) --January
SELECT DATEPART(WEEKDAY, @now) --5
SELECT DATENAME(WEEKDAY, @now) --Thursday

-- Daha kısa kullanım
SELECT DAY(@now) --18
SELECT MONTH(@now) --1
SELECT YEAR(@now) --2024

NOT: DATEPART ve DATENAME aynı zamanda datepart parametresindeki kısaltmaları da kabul eder. Bu kısaltmaların kullanımı kafa karıştırıcı olabileceğinden genellikle önerilmez (m vs mi, ww vs w, vb.).

9.10: DATEPART referansları

Bunlar tarih ve saat işlevlerinde kullanılabilen DATEPART değerleridir:

datepartkısaltması
yearyy, yyyy
quarterqq, q
monthmm, m
dayofyeardy, y
daydd, d
weekwk, ww
weekdaydw, w
hourhh
minutemi, n
secondss, s
millisecondms
microsecondmcs
nanosecondns

9.11: Date Format

YY-MM-DD

1
2
3
4
SELECT RIGHT(CONVERT(VARCHAR(10), SYSDATETIME(), 20), 8) AS [YY-MM-DD]
SELECT REPLACE(CONVERT(VARCHAR(8), SYSDATETIME(), 11), '/', '-') AS [YY-MM-DD]

-- Result : 24-01-08

YYYY-MM-DD

1
2
3
4
SELECT CONVERT(VARCHAR(10), SYSDATETIME(), 120) AS [YYYY-MM-DD]
SELECT REPLACE(CONVERT(VARCHAR(10), SYSDATETIME(), 111), '/', '-') AS [YYYY-MM-DD]

-- Result : 2024-01-08

YYYY-M-D

1
2
3
4
5
6
SELECT 
  CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) + '-' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '-' + 
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) AS [YYYY-M-D]

-- Result : 2024-1-8

YY-M-D

1
2
3
4
5
6
SELECT 
  RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) + '-' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '-' + 
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) AS [YY-M-D]

-- Result : 24-1-8

M-D-YYYY

1
2
3
4
5
6
SELECT 
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '-' + 
  CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) AS [M-D-YYYY]

-- Result : 1-8-2024

M-D-YY

1
2
3
4
5
6
SELECT 
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) AS [M-D-YY]

-- Result : 1-8-24

D-M-YYYY

1
2
3
4
5
6
SELECT 
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '-' + 
  CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) AS [D-M-YYYY]

-- Result : 8-1-2024

D-M-YY

1
2
3
4
5
6
SELECT 
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) AS [D-M-YY]

-- Result : 8-1-24

YY-MM

1
2
3
4
SELECT RIGHT(CONVERT(VARCHAR(7), SYSDATETIME(), 20), 5) AS [YY-MM]
SELECT SUBSTRING(CONVERT(VARCHAR(10), SYSDATETIME(), 120), 3, 5) AS [YY-MM]

-- Result : 24-01

YYYY-MM

1
2
3
SELECT CONVERT(VARCHAR(7), SYSDATETIME(), 120) AS [YYYY-MM] 

-- Result : 2024-01

YY-M

1
2
3
4
5
SELECT 
  RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) + '-' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) AS [YY-M] 

-- Result : 24-1

YYYY-M

1
2
3
4
5
SELECT  
  CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) + '-' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) AS [YYYY-M] 

-- Result : 2024-1

MM-YY

1
2
3
4
SELECT RIGHT(CONVERT(VARCHAR(8), SYSDATETIME(), 5), 5) AS [MM-YY]
SELECT SUBSTRING(CONVERT(VARCHAR(8), SYSDATETIME(), 5), 4, 5) AS [MM-YY] 

-- Result : 01-24

MM-YYYY

1
2
3
SELECT RIGHT(CONVERT(VARCHAR(10), SYSDATETIME(), 105), 7) AS [MM-YYYY] 

-- Result : 01-2024

M-YY

1
2
3
4
5
SELECT 
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) AS [M-YY] 

-- Result : 1-24

M-YYYY

1
2
3
4
5
SELECT 
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) AS [M-YYYY] 

-- Result : 1-2024

MM-DD

1
2
3
SELECT CONVERT(VARCHAR(5), SYSDATETIME(), 10) AS [MM-DD] 

-- Result : 01-08

DD-MM

1
2
3
SELECT CONVERT(VARCHAR(5), SYSDATETIME(), 5) AS [DD-MM] 

-- Result : 08-01

M-D

1
2
3
4
5
SELECT 
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) AS [M-D] 

-- Result : 1-8

D-M

1
2
3
4
5
SELECT 
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '-' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) AS [D-M] 

-- Result : 8-1

M/D/YYYY

1
2
3
4
5
6
SELECT 
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '/' +
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '/' + 
  CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) AS [M/D/YYYY]

-- Result : 1/8/2024

M/D/YY

1
2
3
4
5
6
SELECT 
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '/' +
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '/' +
  RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) AS [M/D/YY]

-- Result : 1/8/24

D/M/YYYY

1
2
3
4
5
6
SELECT 
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '/' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '/' + 
  CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) AS [D/M/YYYY]

-- Result : 8/1/2024

D/M/YY

1
2
3
4
5
6
SELECT 
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '/' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '/' +
  RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) AS [D/M/YY]

-- Result : 8/1/24

YYYY/M/D

1
2
3
4
5
6
SELECT 
  CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) + '/' +
  CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '/' + 
  CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) AS [YYYY/M/D]

-- Result : 2024/1/8

YY/M/D

1
2
3
4
5
SELECT RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) + '/' +
CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '/' + 
CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) AS [YY/M/D]

-- Result : 

MM/YY

1
2
3
SELECT RIGHT(CONVERT(VARCHAR(8), SYSDATETIME(), 3), 5) AS [MM/YY]

-- Result : 

MM/YYYY

1
2
3
SELECT RIGHT(CONVERT(VARCHAR(10), SYSDATETIME(), 103), 7) AS [MM/YYYY]

-- Result : 

M/YY

1
2
3
4
SELECT CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '/' +
RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) AS [M/YY]

-- Result : 

M/YYYY

1
2
3
4
SELECT CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '/' +
CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) AS [M/YYYY]

-- Result : 

YY/MM

1
2
3
SELECT CONVERT(VARCHAR(5), SYSDATETIME(), 11) AS [YY/MM]

-- Result : 

YYYY/MM

1
2
3
SELECT CONVERT(VARCHAR(7), SYSDATETIME(), 111) AS [YYYY/MM]

-- Result : 

YY/M

1
2
3
4
SELECT RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) + '/' +
CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) AS [YY/M]

-- Result : 

YYYY/M

1
2
3
4
SELECT CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) + '/' +
CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) AS [YYYY/M]

-- Result : 

MM/DD

1
2
3
SELECT CONVERT(VARCHAR(5), SYSDATETIME(), 1) AS [MM/DD]

-- Result : 

DD/MM

1
2
3
SELECT CONVERT(VARCHAR(5), SYSDATETIME(), 3) AS [DD/MM]

-- Result : 

M/D

1
2
3
4
SELECT CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '/' +
CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) AS [M/D]

-- Result : 

D/M

1
2
3
4
SELECT CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '/' +
CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) AS [D/M]

-- Result : 

MM.DD.YYYY

1
2
3
SELECT REPLACE(CONVERT(VARCHAR(10), SYSDATETIME(), 101), '/', '.') AS [MM.DD.YYYY]

-- Result : 

MM.DD.YY

1
2
3
SELECT REPLACE(CONVERT(VARCHAR(8), SYSDATETIME(), 1), '/', '.') AS [MM.DD.YY]

-- Result : 

M.D.YYYY

1
2
3
4
5
6
SELECT 
CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '.' +
CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '.' + 
CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) AS [M.D.YYYY]

-- Result : 

M.D.YY

1
2
3
4
5
SELECT CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '.' +
CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '.' +
RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) AS [M.D.YY]

-- Result : 

DD.MM.YYYY

1
2
3
SELECT CONVERT(VARCHAR(10), SYSDATETIME(), 104) AS [DD.MM.YYYY]

-- Result : 

DD.MM.YY

1
2
3
SELECT CONVERT(VARCHAR(10), SYSDATETIME(), 4) AS [DD.MM.YY]

-- Result : 

D.M.YYYY

1
2
3
4
5
SELECT CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '.' +
CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '.' + CAST(YEAR(SYSDATETIME())
AS VARCHAR(4)) AS [D.M.YYYY]

-- Result : 

D.M.YY

1
2
3
4
5
SELECT CAST(DAY(SYSDATETIME()) AS VARCHAR(2)) + '.' +
CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '.' +
RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) AS [D.M.YY]

-- Result : 

YYYY.M.D

1
2
3
4
5
SELECT CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) + '.' +
CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '.' + CAST(DAY(SYSDATETIME()) AS
VARCHAR(2)) AS [YYYY.M.D]

-- Result : 

YY.M.D

1
2
3
4
5
SELECT RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) + '.' +
CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '.' + CAST(DAY(SYSDATETIME()) AS
VARCHAR(2)) AS [YY.M.D]

-- Result : 

MM.YYYY

1
2
3
SELECT RIGHT(CONVERT(VARCHAR(10), SYSDATETIME(), 104), 7) AS [MM.YYYY]

-- Result : 

MM.YY

1
2
3
SELECT RIGHT(CONVERT(VARCHAR(8), SYSDATETIME(), 4), 5) AS [MM.YY]

-- Result : 

M.YYYY

1
2
3
4
SELECT CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '.' +
CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)) AS [M.YYYY]

-- Result : 

M.YY

1
2
3
4
SELECT CAST(MONTH(SYSDATETIME()) AS VARCHAR(2)) + '.' +
RIGHT(CAST(YEAR(SYSDATETIME()) AS VARCHAR(4)), 2) AS [M.YY]

-- Result : 

YYYY.MM

1
2
3
SELECT CONVERT(VARCHAR(7), SYSDATETIME(), 102) AS [YYYY.MM]

-- Result : 

YY.MM

1
2
3
SELECT CONVERT(VARCHAR(5), SYSDATETIME(), 2) AS [YY.MM]

-- Result : 
This post is licensed under CC BY 4.0 by the author.