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