SQL DateTime函数使用示例
文章总结了关于DateTime函数用法与数据转换以及简单的参考手册。
在T-SQL中经常会用到与DateTime相关的函数,现将常用函数做一下汇总,以备忘。
们经常出于某种目的需要使用各种各样的日期格式,当然我们可以使用字符串操作来构造各种日期格式,但是有现成的函数为什么不用呢?
SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm
例如:
select getdate()
2004-09-12 11:06:08.177
整理了一下SQL Server里面可能经常会用到的日期格式转换方法:
SQL DAY() – MONTH( ) – YEAR()
DAY('2008-09-30') = 30
MONTH('2008-09-30') = 9
YEAR('2008-09-30') = 2008
SQL DATEPART()
DATEPART(day, '2008-09-30 11:35:00.1234567') = 30
DATEPART(month, '2008-09-30 11:35:00.1234567') =9
DATEPART(year, '2008-09-30 11:35:00.1234567') = 2008
DATEPART(hour, '2008-09-30 11:35:00.1234567') = 11
DATEPART(minute, '2008-09-30 11:35:00.1234567') = 35
DATEPART(second, '2008-09-30 11:35:00.1234567') = 0
DATEPART(quarter, '2008-09-30 11:35:00.1234567') = 3
DATEPART(dayofyear, '2008-09-30 11:35:00.1234567') =273
DATEPART(week, '2008-09-30 11:35:00.1234567') = 40
DATEPART(weekday, '2008-09-30 11:35:00.1234567') =7
DATEPART(millisecond, '2008-09-30 11:35:00.1234567') =123
DATEPART(microsecond, '2008-09-30 11:35:00.1234567') = 123456
DATEPART(nanosecond, '2008-09-30 11:35:00.1234567') = 123456700
DATEPART(tzoffset, '2008-09-30 11:35:00.1234567 -07:00') = -420
SQL DATEADD()
DATEADD(day, 1, '2008-09-30 11:35:00') = 2008-10-30 01:35:00.000
DATEADD(month, 1, '2008-09-30 11:35:00') = 2008-10-30 11:35:00.000
DATEADD(year, 1, '2008-09-30 11:35:00') = 2009-09-30 11:35:00.000
DATEADD(hour, 1, '2008-09-30 11:35:00') = 2008-09-30 12:35:00.000
DATEADD(minute, 1, '2008-09-30 11:35:00') = 2008-09-30 11:36:00.000
DATEADD(second, 1, '2008-09-30 11:35:00') = 2008-09-30 11:35:01.000
DATEADD(quarter, 1, '2008-09-30 11:35:00') =2008-12-30 11:35:00.000
DATEADD(week, 1, '2008-09-30 11:35:00') = 2008-10-07 11:35:00.000
DATEADD(month, -1, '2008-09-30 11:35:00') = 2008-08-30 11:35:00.000
DATEADD(year, 1.5 , '2008-09-30 11:35:00') = 2009-09-30 11:35:00.000
SQL DATENAME()
DATENAME(day, '2008-09-30 11:35:00.1234567') = 30
DATENAME(month, '2008-09-30 11:35:00.1234567') =September
DATENAME(year, '2008-09-30 11:35:00.1234567') = 2008
DATENAME(hour, '2008-09-30 11:35:00.1234567') = 11
DATENAME(minute, '2008-09-30 11:35:00.1234567') = 35
DATENAME(second, '2008-09-30 11:35:00.1234567') = 0
DATENAME(quarter, '2008-09-30 11:35:00.1234567') = 3
DATENAME(dayofyear, '2008-09-30 11:35:00.1234567') =273
DATENAME(week, '2008-09-30 11:35:00.1234567') = 40
DATENAME(weekday, '2008-09-30 11:35:00.1234567') =Saturday
DATENAME(millisecond, '2008-09-30 11:35:00.1234567') =123
DATENAME(microsecond, '2008-09-30 11:35:00.1234567') = 123456
DATENAME(nanosecond, '2008-09-30 11:35:00.1234567') = 123456700
DATENAME(tzoffset, '2008-09-30 11:35:00.1234567 -07:00') = -07:00
SQL DATEDIFF()
DATEDIFF(day, '2007-12-01' , '2008-09-30') = 303
DATEDIFF(month, '2007-12-01' , '2008-09-30') = 9
DATEDIFF(year, '2007-12-01' , '2008-09-30') = 1
DATEDIFF(hour, '06:46:45' , '11:35:00') = 5
DATEDIFF(minute, '06:46:45' , '11:35:00') = 289
DATEDIFF(second, '06:46:45' , '11:35:00') = 17295
DATEDIFF(quarter, '2007-12-01' , '2008-09-30') = 3
DATEDIFF(week, '2007-12-01' , '2008-09-30') = 44
DATEDIFF(hour, '2008-09-30' , '2007-12-01') = -303
SOME OTHER SQL DATE/TIME RELATED FUNCTIONS
GETDATE()
GETUTCDATE()
SYSDATETIME()
SYSUTCDATETIME()
SYSUTCDATETIMEOFFSET()
DATEADD(datepart,NUMBER,date)
DATEADIFF(datepart, startdate,enddate)
TODATETIMEOFFSET(datetime2,tzoffset)
SWITCHOFFSET(datetimeoffset,tzoffest)
ISDATE(expression)
Adding to this - Calculate no of Days between two dates excluding Weekends.
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = '2010/05/01'
SET @EndDate = '2010/05/11'
SELECT (DATEDIFF(dd, @StartDate, @EndDate) + 1)-(DATEDIFF(wk, @StartDate, @EndDate) * 2)
-(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)-(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END) -- 7
Without century (yy) | With century (yyyy) |
Standard |
Input/Output** |
---|---|---|---|
- | 0 or 100 (*) | Default | mon dd yyyy hh:miAM (or PM) |
1 | 101 | USA | mm/dd/yy |
2 | 102 | ANSI | yy.mm.dd |
3 | 103 | British/French | dd/mm/yy |
4 | 104 | German | dd.mm.yy |
5 | 105 | Italian | dd-mm-yy |
6 | 106 | - | dd mon yy |
7 | 107 | - | Mon dd, yy |
8 | 108 | - | hh:mm:ss |
- | 9 or 109 (*) | Default + milliseconds | mon dd yyyy hh:mi:ss:mmmAM (or PM) |
10 | 110 | USA | mm-dd-yy |
11 | 111 | JAPAN | yy/mm/dd |
12 | 112 | ISO | yymmdd |
- | 13 or 113 (*) | Europe default + milliseconds | dd mon yyyy hh:mm:ss:mmm(24h) |
14 | 114 | - | hh:mi:ss:mmm(24h) |
- | 20 or 120 (*) | ODBC canonical | yyyy-mm-dd hh:mi:ss(24h) |
- | 21 or 121 (*) | ODBC canonical (with milliseconds) | yyyy-mm-dd hh:mi:ss.mmm(24h) |
- | 126(***) | ISO8601 | yyyy-mm-dd Thh:mm:ss:mmm(no spaces) |
- | 130* | Kuwaiti | dd mon yyyy hh:mi:ss:mmmAM |
- | 131* | Kuwaiti | dd/mm/yy hh:mi:ss:mmmAM |
举例如下:
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004
select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004
select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004
select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004
select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004
select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1
select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004
select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1
select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



HQL and SQL are compared in the Hibernate framework: HQL (1. Object-oriented syntax, 2. Database-independent queries, 3. Type safety), while SQL directly operates the database (1. Database-independent standards, 2. Complex executable queries and data manipulation).

"Usage of Division Operation in OracleSQL" In OracleSQL, division operation is one of the common mathematical operations. During data query and processing, division operations can help us calculate the ratio between fields or derive the logical relationship between specific values. This article will introduce the usage of division operation in OracleSQL and provide specific code examples. 1. Two ways of division operations in OracleSQL In OracleSQL, division operations can be performed in two different ways.

Oracle and DB2 are two commonly used relational database management systems, each of which has its own unique SQL syntax and characteristics. This article will compare and differ between the SQL syntax of Oracle and DB2, and provide specific code examples. Database connection In Oracle, use the following statement to connect to the database: CONNECTusername/password@database. In DB2, the statement to connect to the database is as follows: CONNECTTOdataba

Interpretation of MyBatis dynamic SQL tags: Detailed explanation of Set tag usage MyBatis is an excellent persistence layer framework. It provides a wealth of dynamic SQL tags and can flexibly construct database operation statements. Among them, the Set tag is used to generate the SET clause in the UPDATE statement, which is very commonly used in update operations. This article will explain in detail the usage of the Set tag in MyBatis and demonstrate its functionality through specific code examples. What is Set tag Set tag is used in MyBati

What is Identity in SQL? Specific code examples are needed. In SQL, Identity is a special data type used to generate auto-incrementing numbers. It is often used to uniquely identify each row of data in a table. The Identity column is often used in conjunction with the primary key column to ensure that each record has a unique identifier. This article will detail how to use Identity and some practical code examples. The basic way to use Identity is to use Identit when creating a table.

Getting today's date using DateTime.Today function in C# requires specific code examples C# is an object-oriented programming language that provides many built-in classes and methods to handle dates and times. Among them, the DateTime class has some very useful methods, such as the Today property, which can be used to obtain today's date. Here is a sample code that demonstrates how to get today's date using the DateTime.Today function in C#: usingSystem;

How to use SQL statements for data aggregation and statistics in MySQL? Data aggregation and statistics are very important steps when performing data analysis and statistics. As a powerful relational database management system, MySQL provides a wealth of aggregation and statistical functions, which can easily perform data aggregation and statistical operations. This article will introduce the method of using SQL statements to perform data aggregation and statistics in MySQL, and provide specific code examples. 1. Use the COUNT function for counting. The COUNT function is the most commonly used

Solution: 1. Check whether the logged-in user has sufficient permissions to access or operate the database, and ensure that the user has the correct permissions; 2. Check whether the account of the SQL Server service has permission to access the specified file or folder, and ensure that the account Have sufficient permissions to read and write the file or folder; 3. Check whether the specified database file has been opened or locked by other processes, try to close or release the file, and rerun the query; 4. Try as administrator Run Management Studio as etc.
