SQL ServerÈÕÆÚ´¦ÀídatetimeºÍdateÖ®¼äµÄÏ໥ת»»
ÈÕÆÚÀàÐ͸ÅÊö
SQL ServerÖеÄÈÕÆÚÀàÐͰüÀ¨datetimeºÍsmalldatetime£¬½öÄÜ´¦Àí¿ÉÒÔʶ±ðΪ1753Äê¡«9999Äê¼äµÄÈÕÆÚµÄÖµ£¬Ã»Óе¥¶ÀµÄÈÕÆÚÐÍ»òʱ¼äÐÍ¡£
1£®datetime
datetimeÀàÐÍ´¦Àí´Ó1753Äê1ÔÂ1ÈÕ¡«9999Äê12ÔÂ31ÈÕµÄÈÕÆÚºÍʱ¼äÊý¾Ý£¬¾«È·¶ÈΪ°Ù·ÖÖ®ÈýÃë¡£
¼´£º¶ÔÓÚ0.000¡«0.001¡¢0.009µÄÈÕÆÚÖµ£¬µ÷ÕûΪ0.000£»¶ÔÓÚ0.002¡«0.004µÄÈÕÆÚÖµ£¬µ÷ÕûΪ0.003£»¶ÔÓÚ
0.005¡«0.008µÄÈÕÆÚÖµ£¬µ÷ÕûΪ0.007¡£
ÀýÈ磬ÏÂÃæµÄ´úÂëÔÚÊäÈëʱ£¬Æäʱ¼ä¾«È·¶ÈΪ°Ù·ÖÖ®Ò»Ã룬µ«¾Êý¾Ý¿â±£´æºóÔÙÏÔʾ³öÀ´£¬Æä½á¹û¾ÍÒѾ×öÁË´¦Àí¡£
DECLARE @t TABLE(date char(21))
INSERT @t SELECT '1900-1-1 00:00:00.000'
...
INSERT @t SELECT '1900-1-1 00:00:00.009'
SELECT date,ת»»ºóµÄÈÕÆÚ=CAST(date as datetime) from @t
/*--½á¹û
date ת»»ºóµÄÈÕÆÚ
---------------------------------- ----------------------------
1900-1-1 00:00:00.000 1900-01-01 00:00:00.000
...
1900-1-1 00:00:00.000 1900-01-01 00:00:00.010
--*/
datetimeµÄ´æ´¢³¤¶ÈΪ8×Ö½Ú£¬ÈÕÆÚºÍʱ¼ä¸÷ÓÃ4¸ö×Ö½Ú´æ´¢£¬µÚÒ»¸ö4×Ö½Ú´æ´¢×Ô1900Äê1ÔÂ1ÈÕ֮ǰ»òÖ®
ºóµÄÌìÊý£¨ÒÔ1900Äê1ÔÂ1ÈÕΪ·Ö½çµã£¬ÔÚ1900Äê1ÔÂ1ÈÕ֮ǰµÄÈÕÆÚµÄÌìÊýСÓÚ0£¬ÔÚ1900Äê1ÔÂ1ÈÕÖ®ºóµÄÈÕÆÚµÄÌìÊý´óÓÚ0£©¡£ÁíÍâÒ»¸ö4×Ö½Ú
´æ´¢ÒÔÎçÒ¹£¨00:00:00.000£©ºóºÁÃëÊýËù´ú±íµÄÿÌìµÄʱ¼ä¡£
ÀýÈ磬ÏÂÃæµÄ´úÂëÑÝʾÁËdatetime±äÁ¿ÖУ¬½ö°üº¬µ¥´¿µÄÈÕÆÚºÍµ¥´¿µÄʱ¼äʱ£¬ÈÕÆÚ´æ´¢µÄÊ®Áù½øÖÆ´æ´¢±íʾ½á¹û¡£
DECLARE @dt datetime
--µ¥´¿µÄÈÕÆÚ
SET @dt='1900-1-2'
SELECT CAST(@dt as binary(8))
--½á¹û: 0x0000000100000000
--µ¥´¿µÄʱ¼ä
SET @dt='00:00:01'
SELECT CAST(@dt as binary(8))
--½á¹û: 0x000000000000012C
2£®smalldatetime
smalldatetimeÀàÐÍ´¦Àí´Ó1900Äê1ÔÂ1ÈÕ¡«2079Äê6ÔÂ6 ÈÕµÄÈÕÆÚºÍʱ¼äÊý¾Ý£¬¾«È·µ½·ÖÖÓ¡£29.998Ãë»ò¸üµÍµÄsmalldatetimeÖµÏòÏÂÉáÈëΪ×î½Ó½üµÄ·ÖÖÓ£¬29.999Ãë»ò¸ü¸ßµÄsmalldatetimeÖµÏòÉÏÉáÈëΪ×î½Ó½üµÄ·ÖÖÓ¡£
smalldatetimeµÄ´æ´¢³¤¶ÈΪ4×Ö½Ú£¬µÚÒ»¸ö2×Ö½Ú´æ´¢×Ô1900Äê1ÔÂ1ÈÕÖ®ºóµÄÌìÊý¡£ÁíÍâÒ»¸ö2×Ö½Ú´æ´¢ÎçÒ¹£¨00:00:00.000£©ºóµÄ·ÖÖÓÊý¡£
ÀýÈ磬ÏÂÃæµÄ´úÂëÑÝʾÁËsmalldatetime±äÁ¿ÖУ¬½ö°üº¬µ¥´¿µÄÈÕÆÚºÍµ¥
Ïà¹ØÎĵµ£º
(×¢:outerµÄÒâ˼¾ÍÊÇ"ûÓйØÁªÉϵÄÐÐ"¡£)
1.cross join È«ÍâÁ¬½Ó(µÑ¿¨¶û³Ë»ý)
SELECT A.*, B.* from A FULL OUTER JOIN B ON A.ID = B.ID
2.inner join ÄÚÁ¬½Ó(Ôڵѿ¨¶û³Ë»ýµÄ½á¹û¼¯ÖÐÈ¥µô²»·ûºÏÁ¬½ÓÌõ¼þµÄÐÐ)
SELECT A.* from A INNER JOIN B ON A.ID=B.ID
3.left outer join ×óÍâÁ¬½Ó(ÔÚinner joinµÄ½á¹ ......
1. SET DEADLOCK_PRIORITY
˵Ã÷£º¿ØÖÆÔÚ·¢ÉúËÀËøÇé¿öʱ»á»°µÄ·´Ó¦·½Ê½¡£Èç¹ûÁ½¸ö½ø³Ì¶¼Ëø¶¨Êý¾Ý£¬²¢ÇÒÖ±µ½ÆäËü½ø³ÌÊÍ·Å×Ô¼ºµÄËøÊ±£¬Ã¿¸ö½ø³Ì²ÅÄÜÊÍ·Å×Ô¼ºµÄËø£¬¼´·¢ÉúËÀËøÇé¿ö¡£
Óï·¨£ºSET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }
²ÎÊý£ºLOW   ......
1 :ÆÕͨSQLÓï¾ä¿ÉÒÔÓÃexecÖ´ÐÐ
Select * from tableName
exec('select * from tableName')
exec sp_executesql N'select * from tableName' -- Çë×¢Òâ×Ö·û´®Ç°Ò»¶¨Òª¼ÓN
2:×Ö¶ÎÃû£¬±íÃû£¬Êý¾Ý¿âÃûÖ®Àà×÷Ϊ±äÁ¿Ê±£¬±ØÐëÓö¯Ì¬SQL
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname fr ......
1.½¨±í
create table temp(rq varchar(10),shengfu nchar(1))
2.²åÈëÊý¾Ý
insert into temp values('2005-05-09','ʤ')
insert into temp values('2005-05-09','ʤ')
insert into temp values('2005-05-09','¸º')
insert into temp values('2005-05-09','¸º')
insert into temp values('2005-05-10','ʤ')
insert i ......