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±äÁ¿ÖУ¬½ö°üº¬µ¥´¿µÄÈÕÆÚºÍµ¥
Ïà¹ØÎĵµ£º
ÔÚ³ÌÐòµÄ¿ª·¢¹ý³ÌÖУ¬´¦Àí·ÖÒ³ÊÇ´ó¼Ò½Ó´¥±È½ÏƵ·±µÄʼþ£¬ÒòΪÏÖÔÚÈí¼þ»ù±¾É϶¼ÊÇÓëÊý¾Ý¿â½øÐйҵöµÄ¡£µ«Ð§ÂÊÓÖÊÇÎÒÃÇËù×·ÇóµÄ£¬Èç¹ûÊÇÏñÔÀ´ÄÇÑù°ÑËùÓÐÂú×ãÌõ¼þµÄ¼Ç¼ȫ²¿¶¼Ñ¡Ôñ³öÀ´£¬ÔÙÈ¥½øÐзÖÒ³´¦Àí£¬ÄÇô¾Í»á¶à¶àµÄÀ˷ѵôÐí¶àµÄϵͳ´¦Àíʱ¼ä¡£ÎªÁËÄܹ»°ÑЧÂÊÌá¸ß£¬ËùÒÔÏÖÔÚÎÒÃǾÍֻѡÔñÎÒÃÇÐèÒªµÄÊý¾Ý£¬¼õÉÙÊý¾Ý ......
ͨÅä·û_
"_"ºÅ±íʾÈÎÒâµ¥¸ö×Ö·û,¸Ã·ûºÅÖ»ÄÜÆ¥ÅäÒ»¸ö×Ö·û."_"¿ÉÒÔ·ÅÔÚ²éѯÌõ¼þµÄÈÎÒâλÖÃ,ÇÒÖ»ÄÜ´ú±íÒ»¸ö×Ö·û.Ò»¸öºº×ÖֻʹÓÃÒ»¸ö"_"±íʾ.
Àý×Ó£º
if PATINDEX('%[ß¹-×ö]%','ÐèÒªÅжϵÄ×Ö·û')>0 -- ÅжÏÊÇ·ñÓÐ×Ö·û
print 'Óкº×Ö'
else
print 'ÎÞºº×Ö'
ͨÅä·û%
"%"·ûºÅÊÇ×Ö·ûÆ¥Åä·û,ÄÜÆ¥Åä0¸ö»ò¸ü¶à×Ö·ûµÄÈÎÒⳤ¶ ......
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 ......