SQL DATE FUNCTIONS

SQL Server’da kullanmış olduğumuz bir çok fonksiyon vardır. Bu fonksiyonlardan bir taneside tarih ile alakalı olarak kullanmış olduğumuz  “DATE” fonksiyonlarıdır. Bu yazımızda sizlere; DATEDIFF DATEPART VE DATENAME DATEADD DATEDIFF_BIG GETDATE Fonksiyolarını anlatacağım. DATEDIFF(interval, date1, date2) FUNCTIONS DATEDIFF() fonksiyonun temel kullanım amacı girilen iki tarih arasında geçen zaman farkı yıl, ay veya gün olarak “INT” türünden almamızı sağlamaktadır. Bu fonksiyon 3 adet parametreden oluşur. Bulmak istediğiniz zaman farkını hangi zaman diliminden istediğiniz(Year-Month-Day) Başlangıç tarihi Bitiş tarihi DATEDIFF_BIG(datepart,startdate,enddate)FUNCTIONS DATEDIFF_BIG fonksiyonu, verilen iki tarih arasındaki farkı “BIGINT” türünden hesaplamaktadır. DATEDIFF fonksiyonuda verilen iki tarih arasındaki farkı hesaplamaktadır fakat “INT” türünden hesap yapar ve bizim yapacağımız çalışma “INT (max=2,147,483,647)”türünden büyük ise yetersiz kalacaktır. Yukarıdaki sorgumuzda DATEDIFF fonksiyonunun yapabileceği işlem limitinden fazla bir değer aralığı yaptık ve hata aldık. Aynı sorguyu DATEDIFF_BIG ile yaptığımızda ise herhangi bir hata almadık DATEPART&DATENAME(datepart , date) FUNCTIONS DATENAME ve DATEPART fonksiyonları belli bir zaman dilimindeki tarihlerin belirtilen bir bölümünü döndürür. Aralarındaki […]

SQL DATE FUNCTIONS

SQL Server’da kullanmış olduğumuz bir çok fonksiyon vardır. Bu fonksiyonlardan bir taneside tarih ile alakalı olarak kullanmış olduğumuz  “DATE” fonksiyonlarıdır. Bu yazımızda sizlere;

  1. DATEDIFF
  2. DATEPART VE DATENAME
  3. DATEADD
  4. DATEDIFF_BIG
  5. GETDATE

Fonksiyolarını anlatacağım.

DATEDIFF(interval, date1, date2) FUNCTIONS

DATEDIFF() fonksiyonun temel kullanım amacı girilen iki tarih arasında geçen zaman farkı yıl, ay veya gün olarak “INT” türünden almamızı sağlamaktadır. Bu fonksiyon 3 adet parametreden oluşur.

  • Bulmak istediğiniz zaman farkını hangi zaman diliminden istediğiniz(Year-Month-Day)
  • Başlangıç tarihi
  • Bitiş tarihi

datediffnew

DATEDIFF_BIG(datepart,startdate,enddate)FUNCTIONS

DATEDIFF_BIG fonksiyonu, verilen iki tarih arasındaki farkı “BIGINT” türünden hesaplamaktadır. DATEDIFF fonksiyonuda verilen iki tarih arasındaki farkı hesaplamaktadır fakat “INT” türünden hesap yapar ve bizim yapacağımız çalışma “INT (max=2,147,483,647)”türünden büyük ise yetersiz kalacaktır.

datedıffbıgınt

Yukarıdaki sorgumuzda DATEDIFF fonksiyonunun yapabileceği işlem limitinden fazla bir değer aralığı yaptık ve hata aldık. Aynı sorguyu DATEDIFF_BIG ile yaptığımızda ise herhangi bir hata almadık

BIGINTDATEDIFF

DATEPART&DATENAME(datepart , date) FUNCTIONS

DATENAME ve DATEPART fonksiyonları belli bir zaman dilimindeki tarihlerin belirtilen bir bölümünü döndürür. Aralarındaki farka değinecek olursak, DATENAME fonksiyonu belli bir tarih içindeki aya ait ismi, güne ait ismi dönerken, DATEPART fonksiyonu ile ayın veya günün sayısal değerini elde ederiz.

İki fonksiyonumuzun da örnekleriyle elde ettiğimiz çıktıların arasındaki farkı karşılaştırabilirsiniz.

datepart_new

datenamenew

DATEADD(interval, number, date) FUNCTIONS

SQL Servar’da DATEADD fonksiyonu belirtilen tarihin üzerine belirtilen süreyi ekler.

dateadd fonksiyonu

Kullanılan Tarihler ve kısaltmaları aşağıdaki tablomuzda inceleyebilirsiniz.

TARİHLER

KISALTMARI

year

Yy,yyyy

quarter

Q,qq

month

M,mm

dayofyear

Y,dy

day

D,dd

week

Wh,ww

weekday

W,dw

hour

Hh

minute

N,mi

second

S,ss

millisecond

Ms

microsecond

Mcs

nanosecond

Ns

GETDATE() FUNCTIONS

SQL’de GETDATE() fonksiyonu sistem tarihini ve saatini döndürür.Kullanımıda kolay bir fonksiyondur.

GETDATE

Benzer Yazılar

TAIL-LOG BACKUP İLE DATABASE’E ATILAN SON COMMIT’E GERİ DÖNME

SQL Server 2 ay önce

Bu yazımızda “.LDF” dosyası üzerinden tail-log backup alarak database’in son commit olan haline kadar geri dönme işlemi nasıl yapılıyor bu konuyu anlatacağım. Ama ondan önce tail-log backup ne için kullanılır ve nedir onu bir açıklayalım; Bir database’i başka bir yere taşımak istediğimizde aşağıdaki görsel’de olduğu gibi bir tail-log backup alırız ve database restoring state düşer işlem yapılamaz olur. Sonrasında aldığımız tail-log’u yeni ayağa kaldırmak istediğimiz instance üzerinde, önceden restore edilen backup zinciri üzerine işleyerek ayağa kaldırırız. Bu şekilde hem veri bütünlüğü korunur(veri kaybı olmaz) hemde kısa süreli kesinti ile db’yi başka bir instance’de ayağa kaldırmış oluruz. Ama ben bu yazıda size daha farklı bir senaryo üzerinde size tail-log’u anlatacağım. DİPNOT OLARAK; tail-log backup alındığında DB restoring state’e düşer, aynı tail-log restore edildiğinde db restoring state’ten Online state’e geçer. Tail-log backup aslında .LDF dosyasını truncate etmeyen bir log backup türevidir.   Basit bir senaryo üzerinde anlatacak olursak; Öncelikle bir adet full […]

SQL Server Always Encrypted

SQL Server 10 ay önce

Bu makalede hassas ve önemli içeriğe sahip olduğunu düşündüğümüz bir kolon bilgisinin şifrelenme (hash) yöntemi hakkında bilgi vereceğiz. Bir kolonu şifrelemek istediğimizde bu işlemi SQL Server’ın, Always Encrypted özelliği ile yapabiliriz. Buradaki amacımız hassas olan verilerin güvenliğini sağlamak. Always Encrypted edilen kolonu encrypted edildiğinde metadata değişikliği yapıldığı için o encrpyted için kullanılan Master Key’i silemezsiniz. Data her taşındığında o kolondaki always encrypted özelliğide data ile birlikte gelecektir. Metadata üzerinde yapılan bu değişiklik sizin SELECT sorgularınızda where koşulunda belirteceğiniz LIKE ve benzeri koşullar ile arama imkanınızı engelleyecektir. Eğer kriptolomak istediğiniz kolonda SELECT sorgularında WHERE koşulunda o kolon üzerinde şartlarınız olacak ise bir başka özellik olan şifreleme işlemini disk üzerinde yapılmasını sağlayan Column Level Encryption özelliğini kullanabilirsiniz. DECRYPTBYKEY fonksiyonu sayesinde şifrelenmiş kolonu convert ederek like ve benzeri şartlarda arama yapma imkanı size sunacaktır. Tekrar yazımıza dönerek, Always Encrypted özelliğini aktif etmek için aşağıdaki adımları sırasıyla izleyerek sağlayabiliriz. 1-)Encrypted edeceğimiz kolon için o […]

Temporal Table

SQL Server 10 ay önce

Temporal table güncel olarak kullandığımız tablolarda yapılan UPDATE ve DELETE işlemlerin daha önceki kayıtlar hakkında bilgisini tutmamızı sağlar. Bunun bir diğer yöntemi cdc dir. Fakat cdc sistemde ciddi bir maliyet oluşturduğu için bu yöntem tercih edilmektedir. CDC hakkında detaylı bilgi için Sql Server Change Data Capture Aktif Etme adlı makaleyi inceleyebilirsiniz. Sql Server 2022 ile birlikte Ledger özelliği ile hash yapıda tutarak daha da güvenlikli hale getirmiştir. Temporal Table özelliği aktif edilecek tabloda Primary Key mutlaka olmalı. Eğer yoksa eklenmeli fakat bu işlem transaction yoğunluğu olan tabloda yapılırken dikkatli yapılmalı!!! Biz işlemlerimizi hali hazırda güncel olarak kullanılan tablo için yapacağımız. Örneği denemek isteyenler için tablonun yapısını aşağıda bulabilirsiniz. USE [ADMINDB] CREATE TABLE [dbo].[TemporalTableTest]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [AcanYerID] [nvarchar](10) NOT NULL, [AcanTelefon] [nvarchar](20) NULL, [Konu] [varchar](150) NOT NULL, [Detay] [nvarchar](1000) NOT NULL, [AlinmaTarihi] [datetime] NOT NULL, [YapilanIslem] [nvarchar](1000) NULL, [IslemTarihi] [datetime] NULL, CONSTRAINT [PK_TemporalTableTest] PRIMARY KEY CLUSTERED ( [ID] […]

0 Yorum

Yorum Yaz

Rastgele