In SQL, you use date and time data types to store calendar information. These data types include the time, date, smalldatetime, datetime, datetime2, and datetimeoffset. Each data type has a specific format.
| Data type | Format |
|---|---|
| time | hh:mm:ss[.nnnnnnn] |
| date | YYYY-MM-DD |
| smalldatetime | YYYY-MM-DD hh:mm:ss |
| datetime | YYYY-MM-DD hh:mm:ss[.nnn] |
| datetime2 | YYYY-MM-DD hh:mm:ss[.nnnnnnn] |
| datetimeoffset | YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+/-]hh:mm |
The DATENAME function returns the name or value of a specific part of the date.
SELECT DATENAME (weekday,'2017-01-14') as Datename
| Datename |
|---|
| Saturday |
You use the GETDATE function to determine the current date and time of the computer running the current SQL instance. This function doesn't include the time zone difference.
SELECT GETDATE() as Systemdate
| Systemdate |
|---|
| 2017-01-14 11:11:47.7230728 |
The DATEDIFF function returns the difference between two dates.
In the syntax, datepart is the parameter that specifies which part of the date you want to use to calculate difference. The datepart can be year, month, week, day, hour, minute, second, or millisecond. You then specify the start date in the startdate parameter and the end date in the enddate parameter for which you want to find the difference.
SELECT SalesOrderID, DATEDIFF(day, OrderDate, ShipDate)
AS 'Processing time'
FROM Sales.SalesOrderHeader
| SalesOrderID | Processing time |
|---|---|
| 43659 | 7 |
| 43660 | 7 |
| 43661 | 7 |
| 43662 | 7 |
The DATEADD function enables you to add an interval to part of a specific date.
SELECT DATEADD (day, 20, '2017-01-14') AS Added20MoreDays
| Added20MoreDays |
|---|
| 2017-02-03 00:00:00.000 |