Some time processing in SQLServer

Source: Internet
Author: User
Obtain the current system time selectgetdate (); selectcast (getdate () asdatetime); compare select * fromtable_namewhere (cast (adddateasdatetime)-getdate () 0and (cast (adddateasdatetime) -getdate ()-1; select * fromtable_namewhere (cast

// Obtain the current system time select getdate (); select cast (getdate () as datetime); // compare the current date select * from table_name where (cast (adddate as datetime) -getdate () 0 and (cast (adddate as datetime)-getdate ()-1; select * from table_name where (cast

// Obtain the current systemTimeSelect getdate (); select cast (getdate () as datetime); // compare select * from table_name where (cast (adddate as datetime)-getdate () on the current day ()) <0 and (cast (adddate as datetime)-getdate ()>-1; select * from table_name where (cast (adddate as datetime)> = CONVERT (varchar, getdate (), 101) select CONVERT (varchar, getdate (), 120); // output: 2012-01-13 14: 41: 03 select CONVERT (varchar, getdate (), 101 ); // output: 01/13/2012


DATEDIFF function [date andTime]

--------------------------------------------------------------------------------

Purpose: return the interval between two dates.

Syntax:
DATEDIFF (date-part, date-expression1, date-expression2 );

Parameters:
Date-part:
Year | quarter | month | week | day | hour | minute | second | millisecond

Date-part specifies the date part of the interval to be calculated.
The start date of an interval in the date-expression1. Subtract this value from the date-expression2 and return the value of date-parts between two parameters.
The end date of an interval in the date-expression2. Subtract the date-expression1 from this value and return the value of date-parts between two parameters.

Example:
The following statement returns 1:
SELECT datediff (hour, '4: 00am', '5: 50am ')

The following statement returns 102:
SELECT datediff (month, '2014/1/02 ', '2014/3/15 ')

The following statement returns 0:
SELECT datediff (day, '00: 00', '23: 59 ')

The following statement returns 4:
SELECT datediff (day, '2014/1/2: 00', '2014/3/24: 59 ')

The following statement returns 0:
SELECT datediff (month, '2014/1/19', '2014/3/23 ')

The following statement returns 1:
SELECT datediff (month, '2014/1/19', '2014/3/23 ')

Usage:
This function calculates the value of the date part between two specified dates. The result is a signed integer of the date portion that is equal to the date2-date1.
When the result is not an even multiple of the date part, DATEDIFF is truncated instead of rounded.
When day is used as the date part, DATEDIFF returns two specifiedTimeThe number of midnight between (including the second date but not the first date.
When month is used as the date part, DATEDIFF returns the number of the first day of the month between two dates (including the second date but not the first date.
When week is used as the date part, DATEDIFF returns the number of Sundays between two dates (including the second but not the first.

For smallerTimeOverflow value in the unit:
Milliseconds 24 days
Seconds 68 years
Minutes 4083
Others has no overflow restrictions
If these limits are exceeded, this function returns an overflow error.

Standard and compatibility:
SQL/92 Transact-SQL extension.
SQL/99 Transact-SQL extension.
Sybase is compatible with AdaptiveServerEnterprise.


CONVERT date formatting in ms SQL Server

CONVERT
Explicitly converts a data type expression to another data type. Because some requirements often use different date formats, the following can be found in
Format the date in SQL Server.

SQL Server supports the data format in the Arabic style using the Kuwait algorithm.

In the table, the two columns on the left representDatetimeOrSmalldatetimeConversion to character dataStyleValue. ToStyleValue plus 100 to obtain the four-digit year (yyyy) of the century ).

Without Century digital (yy) Digital Century (yyyy)
Standard

Input/Output **
- 0 or 100 (*) Default Value Mon dd yyyy hh: miAM (or PM)
1 101 USA Mm/dd/yyyy
2 102 ANSI Yy. mm. dd
3 103 UK/France Dd/mm/yy
4 104 Germany Dd. mm. yy
5 105 Italy Dd-mm-yy
6 106 - Dd mon yy
7 107 - Mon dd, yy
8 108 - Hh: mm: ss
- 9 or 109 (*) Default Value + millisecond 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 (*) European default value + millisecond Dd mon yyyy hh: mm: ss: mmm (24 h)
14 114 - Hh: mi: ss: mmm (24 h)
- 20 or 120 (*) ODBC specifications Yyyy-Mm-dd hh:Mm:Ss[.Fff]
- 21 or 121 (*) ODBC specifications (in milliseconds) Yyyy-Mm-dd hh:Mm:Ss[.Fff]
- 126 (***) ISO8601 Yyyy-mm-dd Thh: mm: ss: mmm (excluding spaces)
- 130 * Kuwait Dd mon yyyy hh: mi: ss: mmmAM
- 131 * Kuwait Dd/mm/yy hh: mi: ss: mmmAM

* Default value (Style0 or 100, 9 or 109, 13 or 113, 20 or 120, 21 or 121) always returns the digital Century (yyyy ).
** When convertingDatetimeInput; output when converted to character data.
* ** It is specially used for xml. ForDatetimeOrSmalldatetimeToCharacterData conversion. The output format is shown in the table. ForFloat,MoneyOrSmallmoneyToCharacterData conversion and output are equivalentStyle2. ForRealToCharacterData conversion and output are equivalentStyle1.

ImportantBy default, SQL Server interprets two-digit years based on the end year 2049. That is, the year 49 with two digits is interpreted as 2049, and the year 50 with two digits is interpreted as 1950. Many client applications (such as client applications based on OLE automation objects) Use 2030 as the end year. SQL Server provides a configuration option ("") to change the end year used by SQL Server and make the date consistent.Processing. However, the safest way is to specify a four-digit year.

WhenSmalldatetimeWhen converting to character data, the style that contains seconds or milliseconds will display zero at these locations. WhenDatetimeOrSmalldatetimeYou can use the appropriateCharOrVarcharThe length of the Data Type to truncate the date part that is not required.

The following table showsFloatOrRealWhen converting to character dataStyleValue.

Value Output
0(Default) The maximum value is 6 digits. Use scientific notation as needed.
1 Always 8 bits. Always use scientific notation.
2 Always a 16-bit value. Always use scientific notation.

In the following table, the left column indicatesMoneyOrSmallmoneyWhen converting to character dataStyleValue.

Value Output
0(Default) Each three digits on the left of the decimal point are not separated by commas. The two digits on the right of the decimal point, for example, 4235.98.
1 Each three digits on the left of the decimal point are separated by commas. The two digits on the right of the decimal point, for example, 3,510.92.
2 Each three digits on the left of the decimal point are not separated by commas. The four digits on the right of the decimal point, for example, 4235.9819.

Use CONVERT:

CONVERT (data_type [(length)], exPRession [, style])


Select CONVERT (varchar, getdate (), 120)
11:06:08

Select 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,200 4

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.