您的位置:首页 > 数据库

select records by Date in SQL Server

2009-04-10 17:34 316 查看
1, how to select
assume the table CAS.dbo._Test have a field AuthTime with the type datetime, We may use following SQL to select all the records in '2009-04-06'.

SELECT *
FROM CAS.dbo._Test
WHERE (AuthTime > CONVERT(DATETIME, '2009-04-06', 102)) AND
(AuthTime < CONVERT(DATETIME, '2009-04-07', 102))
Or simply
SELECT *
FROM CAS.dbo._Test
WHERE (AuthTime > '2009-04-06') AND (AuthTime < '2009-04-07')

Here the string '2009-04-06' actually stands for '2009-04-06 AM 00:00:00'
Another example:
select CONVERT(VARCHAR(8),GETDATE(),112)
20090209
(1 row(s) affected)

2, some tips on getting time string
With the class COleDateTime you can convert the system time into a string with any form you like. The COleDateTime object can be initialed by time_t, SYSTEMTIME, or even:
COleDateTime time = COleDateTime(2001,6,15, 10, 8, 30);
If need the next day, just add 1 to the object. Call Format we can get the string form of time. Here is a example:

COleDateTime curTime;
SYSTEMTIME time;
CString cstrTimeFrom, cstrTimeTo;

GetLocalTime(&time);
m_curTime = time;
cstrTimeFrom = curTime.Format("%Y-%m-%d");
curTime += 1;
cstrTimeTo = curTime.Format("%Y-%m-%d");


then the string cstrTimeFrom, cstrTimeTo are filled with '2009-04-06' and '2009-04-07'. The standard format: Format(_T("%Y-%m-%d %H:%M:%S"));

you may also get the right time string by MFC class CTime.

And there is some notes about the function CONVERT from MSDN:
Using CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Arguments
expression
Is any valid Microsoft® SQL Server™ expression. For more information, see Expressions.
data_type
Is the target system-supplied data type, including bigint and sql_variant. User-defined data types cannot be used. For more information about available data types, see Data Types.
length
Is an optional parameter of nchar, nvarchar, char, varchar, binary, or varbinary data types.
style
Is the style of date format used to convert datetime or smalldatetime data to character data (nchar, nvarchar, char, varchar, nchar, or nvarchar data types), or the string format when converting float, real, money, or smallmoney data to character data (nchar, nvarchar, char, varchar, nchar, or nvarchar data types).
SQL Server supports the date format in Arabic style, using Kuwaiti algorithm.
In the table, the two columns on the left represent the style values for datetime or smalldatetime conversion to character data. Add 100 to a style value to get a four-place year that includes the century (yyyy).

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*
Hijri****
dd mon yyyy hh:mi:ss:mmmAM
-
131*
Hijri****
dd/mm/yy hh:mi:ss:mmmAM
* The default values (style 0 or 100, 9 or 109, 13 or 113, 20 or 120, and 21 or 121) always return the century (yyyy).
** Input when converting to datetime; output when converting to character data.
*** Designed for XML use. For conversion from datetime or smalldatetime to character data, the output format is as described in the table. For conversion from float, money, or smallmoney to character data, the output is equivalent to style 2. For conversion from real to character data, the output is equivalent to style 1.
Source:
http://msdn.microsoft.com/en-us/library/aa226054(SQL.80).aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: