SQL SERVERº¯Êý´óÈ« ÏÂÔØ±¾ÎÄ

DATEPART()ÓëDATENAME()º¯Êý

ÕâÁ½¸öº¯ÊýÓÃÓÚ·µ»Ødatetime»òÕßshortdatetimeÖµµÄÈÕÆÚ²¿·Ö¡£DATEPART()º¯Êý·µ»ØÒ»¸öÕûÐÍÖµ£»DATENAME()º¯Êý·µ»ØÒ»¸ö°üº¬ÃèÊöÐÔÎÄ×ÖµÄ×Ö·û´®¡£±ÈÈ磬½«ÈÕÆÚ4-29-1988´«µÝ¸øDATEPART()º¯Êý£¬ÈçÖ¸¶¨·µ»ØÔ·ÝÖµ£¬Ôò·µ»ØÊý×Ö4£º

SELECT DATEPART(MONTH, '4-29-1988')

¶øÊ¹ÓÃÏàͬµÄ²ÎÊý£¬DATENAME()º¯Êý·µ»Ø04£¨ÕâÈ¡¾öÓÚÄãµÄ»úÆ÷µÄ±¾µØÓïÑÔ£¬Èç¹ûÊÇÓ¢Îİ棬ÄÇô½«·µ»ØApril£©£º

SELECT DATENAME(MONTH, '4-29-1988')

ÕâÁ½¸öº¯Êý¶¼½ÓÊÕºÍDATEADD()º¯ÊýÒ»ÑùµÄʱ¼ä¼ä¸ô²ÎÊý³£Á¿¡£ GETDATE()ÓëGETUTCDATE()º¯Êý

ÕâÁ½¸öº¯Êý¶¼ÓÃÓÚ·µ»ØdatetimeÀàÐ͵ĵ±Ç°ÈÕÆÚÓëʱ¼ä¡£GETUTCDATE()º¯ÊýʹÓ÷þÎñÆ÷ÉϵÄÊ±ÇøÉèÖÃÀ´Çó³öUTCʱ¼ä£¬ÕâºÍ¸ñÁÖÍþÖαê׼ʱ¼ä»ò·ÉÐÐÔ±Ëù˵µÄ\×æÂ³Ê±\ÊÇÒ»ÑùµÄ¡£Á½¸öº¯Êý¶¼Äܾ«È·µ½3.33ºÁÃë¡£ SELECT GETDATE() SELECT GETUTCDATE()

Ö´ÐÐÕâÁ½¸öº¯Êý£¬¶¼½«·µ»ØÎ´¾­¸ñʽ»¯µÄ½á¹û£¬¼ûÏÂͼ£º

ÎÒÔÚ±±¾©£¬ºÍUTCʱ¼äÏà²î8¸öСʱ£¬ºÍ±ê׼ʱ¼äÏà²î9¸öСʱ¡£¿ÉÒÔʹÓÃÈçÏÂDATEDIFF()º¯ÊýÀ´ÑéÖ¤Õâ¸öʱ¼ä²îÖµ£º

SELECT DATEDIFF(HOUR, GETDATE(), GETUTCDATE()) SYSDATETIME()ºÍSYSUTCDATETIME()º¯Êý

ÕâÁ½¸öSQL Server 2008º¯ÊýµÈ¼ÛÓÚGETDATE()ºÍGETUTCDATE()º¯Êý£¬µ«²»ÊÇ·µ»ØdatetimeÊý¾ÝÀàÐ͵Ľá¹û£¬¶øÊÇ·µ»ØSQL Server 2008еÄdatetime2Êý¾ÝÀàÐ͵Ľá¹û£¬¸ÃÊý¾ÝÀàÐÍ¿ÉÒÔ¾«È·µ½100ÄÉÃ룬µ±È»ÕâÈ¡¾öÓÚ·þÎñÆ÷°²×°µÄÓ²¼þ¡£

SELECT SYSDATETIME() SELECT SYSUTCDATETIME()

DAY()¡¢MONTH()ºÍYEAR()º¯Êý

ÕâÈý¸öº¯Êý·Ö±ð·µ»ØÒÔÕûÊý±íʾµÄdatetime»òÕßsmalldatetimeÀàÐÍÖµµÄÈÕ¡¢Ô¡¢Äê¡£ËüÃǵÄÓÃ;ºÜ¹ã·º£¬Èç¿ÉÒÔ´´½¨¶ÀÌØµÄ¸öÐÔ»¯ÈÕÆÚ¸ñʽ¡£¼ÙÉèÐèÒª´´½¨Ò»¸ö×Ô¶¨ÒåµÄÈÕÆÚÖµ×÷Ϊ×Ö·û´®£¬Í¨¹ý½«ÕâÈý¸öº¯ÊýµÄÊä³ö½á¹ûת»»³É×Ö·ûÀàÐÍ£¬È»ºó½øÐÐÁ¬½Ó²Ù×÷£¬¾Í¿ÉÒÔ¶ÔÊä³ö½á¹ûÒÔÈκÎÐÎʽ½øÐÐ×éºÏÁË£º

SELECT 'Year: ' + CONVERT(varchar(4), YEAR(GETDATE())) + ', Month: ' + CONVERT(varchar(2), MONTH(GETDATE())) + ', Day: ' + CONVERT(varchar(2), DAY(GETDATE()))

Õâ¸ö½Å±¾Éú³ÉÏÂÁнá¹û£º

Year:2008, Month:2, Day:20

ÏÂÒ»½Ú½«ÌÖÂÛ×Ö·û´®²Ù×ݺ¯Êý£¬²¢Ê¹ÓÃÏàËÆµÄ¼¼ÊõÀ´¹¹½¨Ò»¸ö½ô´ÕµÄ¶¨ÖÆÊ±¼ä´Á¡£ ×Ö·û´®²Ù×ݺ¯Êý

×Ö·û´®º¯Êý¿ÉÒÔ½âÎö¡¢Ìæ»»¡¢²Ù×Ý×Ö·ûÐÍÖµ¡£ÔÚ´¦Àíԭʼ×Ö·ûÊý¾Ýʱ£¬×î´óµÄÌôÕ½Ö®Ò»ÊÇÈçºÎ¿É¿¿µØÌáÈ¡³öÓÐÒâÒåµÄÐÅÏ¢¡£Óкܶà×Ö·û´®½âÎöº¯Êý¿ÉÓÃÓÚ±êʶºÍ½âÎö×Ó×Ö·û´®(Ò»¸ö´ó×Ö·ûÐÍÖµµÄÒ»²¿·Ö)¡£ÎÒÃÇÒ»Ö±ÔÚ×öÕâÖÖÊ£¬ÔÚÎÒÃÇÔĶÁÎļþ¡¢·¢Æ±»òÕßÊéÃæ²ÄÁÏʱ£¬¾Í»á±¾Äܵرêʶ¡¢·ÖÀë³öÓÐÒâÒåµÄÐÅϢƬ¶Î¡£Õâ¸ö¹ý³ÌµÄ×Ô¶¯»¯·Ç³£À§ÄÑ£¬¼´Ê¹ÊÇ´¦Àí²»Ì«¸´ÔÓµÄÎı¾£¬Ò²ºÜÀ§ÄÑ¡£ÕâЩº¯Êý°üº¬¼¸ºõËùÓбØÐèµÄ¹¤¾ß£¬¶øÌôÕ½ÔÚÓÚÈçºÎÕÒ³ö×î¼òµ¥¡¢×î¸ßЧµÄ·½·¨¡£ ASCII()¡¢CHAR()¡¢UNICODE()ºÍNCHAR()º¯Êý

ÕâËĸöº¯ÊýÊÇÏàËÆµÄ£¬ËüÃǶ¼¿ÉÒÔÔÚ×Ö·ûºÍ×Ö·ûµÄ±ê×¼Êý×Ö±íʾ֮¼äת»»¡£ÃÀ¹ú±ê×¼ÐÅÏ¢½»»»Âë(American Standard Code for Information Interchange£¬ASCII)±ê×¼×Ö·û¼¯°üº¬128¸ö×Öĸ¡¢Êý×ֺͱêµã·ûºÅ¡£Õâ¸ö×Ö·û¼¯ÊÇIBM PCÌåϵ½á¹¹µÄ»ù´¡£¬ËäÈ»ÓÐЩ×Ö·ûÏÖÔÚ¿´À´ÒѾ­ºÜ¹ÅÀÏÁË£¬µ«»¹ÊDZ»±£ÁôÁËÏÂÀ´£¬ÇÒÈÔÊÇÏÖ´ú¼ÆËã»ú¼¼ÊõµÄºËÐÄ¡£Èç¹ûÔÚ¼ÆËã»úÉÏʹÓÃÓ¢ÓÔò¼üÅÌÉϵÄÿ¸ö×Ö·û¶¼ÊÇÓÃASCIIÂë±íʾµÄ¡£Õâ¶Ô˵ӢÓï(ÖÁÉÙÒÔÓ¢Óï´ò×Ö)µÄ¼ÆËã»úÓû§À´ËµÊÇÓÐÀûµÄ£¬µ«ÊÇÆäËûÈËÓÖ¸ÃÔõô°ìÄØ?

ÔÚ¼ÆËã»úµÄ·¢Õ¹¹ý³ÌÖУ¬ ASCII×Ö·û¼¯·¢²¼Ã»¶à³¤Ê±¼ä±ã¹ýʱÁË¡£ÈËÃǺܿ콫ËüÀ©Õ¹³ÉΪ256¸ö×Ö·ûµÄANSI×Ö·û¼¯£¬Ò»¸ö×Ö·ûÓÃÒ»¸ö×Ö½ÚÀ´±£´æ¡£Õâ¸öÀ©Õ¹µÄ×Ö·ûÁбíÂú×ãÁËÐí¶àÆäËûÓû§µÄÐèÇ󣬿ÉÒÔÖ§³ÖÖ÷ÒªµÄÅ·ÖÞÓïÑÔ×Ö·û£¬²»¹ýÈÔÊÇÃÀ¹ú±ê×¼(ÓÉÃÀ¹ú¹ú¼Ò±ê׼ѧ»á³ÖÓÐ)£¬ÈÔ½¨Á¢ÔÚ×î³õµÄÓ¢Óï×Ö·û¼¯µÄ»ù´¡ÉÏ¡£ÎªÁËÖ§³ÖËùÓпÉÓ¡Ë¢µÄÓïÑÔ£¬ÈËÃÇÖÆ¶©ÁËUnicode±ê×¼£¬ËüÖ§³Ö¶àÖÖÓïÑÔÌØ¶¨µÄ×Ö·û¼¯¡£Ã¿¸öUnicode×Ö·ûÐèÒª2¸ö×ֽڵĴ洢¿Õ¼ä£¬ÊÇASCIIÓëANSI

×Ö·ûµÄÁ½±¶¡£µ«ÊÇʹÓÃ2¸ö×־ͿÉÒÔ±íʾ³¬¹ý65 000¸ö²»Í¬µÄ×Ö·û£¬ÍêÈ«Äܹ»Ö§³Ö¶«Å·ºÍÑÇÖÞ×Ö·û¡£SQL Serverͬʱ֧³ÖASCIIÓëUnicodeÁ½ÖÖ±ê×¼¡£

ASCII()ºÍCHAR()ÊÇÁ½¸ö»ùÓÚASCIIµÄº¯Êý£¬ÕâÁ½¸öº¯Êý¿É½«¼ÆËã»úÉÏÓ¦ÓõÄÿ¸ö×Ö·û±íʾΪÊý×Ö¡£ÒªÈ·¶¨´ú±íÒ»¸ö×Ö·ûµÄÊý×ÖÊÇʲô£¬¾ÍÓ¦¸øASCII()º¯Êý´«ËÍÖ»°üº¬Ò»¸ö×Ö·ûµÄ×Ö·û´®£¬ÈçÏ£º

SELECT ASCII('A') ½á¹ûÊÇ65¡£

ÈçÒª½«Ò»¸öÒÑÖªÊý×Öת»»Îª×Ö·û£¬ÓÖ¸ÃÔõô°ì£¿Ê¹ÓÃCHAR()º¯Êý¼´¿É£º SELECT CHAR(65) ½á¹ûÊÇ×ÖĸA¡£

ÒªµÃµ½ÍêÕûµÄASCII×Ö·ûÖµÁÐ±í£¬¿ÉÒÔ¶ÔÒ»¸öÁÙʱ±íÌî³ä´Ó0µ½127µÄÊý×Ö£¬È»ºóµ÷ÓÃCHAR()º¯Êý·µ»ØÏàÓ¦µÄ×Ö·û¡£ÎªÁ˽ÚÊ¡¿Õ¼ä£¬ÎÒÃǶÔÒÔÏÂÕâ¸ö½Å±¾½øÐÐÁËɾ½Ú£¬µ«°üº¬Õû¸ö½á¹û¼¯£¬²¢ÒÔ¶àÀ¸¸ñʽ¸ø³ö¡£

-- ´´½¨Ò»¸öÁÙʱ±íÀ´±£´æASCIIÂë: Create Table #ASCIIVals (ASCIIValue smallint) -- ²åÈëÊý×Ö0 - 127 µ½ÁÙʱ±íÖÐ: declare @Number int set @Number = 0 while(@Number < 128) begin Insert Into #ASCIIVals (ASCIIValue) Select @Number set @Number = @Number + 1 end -- ²éѯËùÓеÄÕûÐÍÊý×ÖÓëÆä¶ÔÓ¦µÄASCIIÂë: SELECT ASCIIValue, CHAR(ASCIIValue) AS Character FROM #ASCIIVals drop table #ASCIIVals

±í6-12ÊÇÒÔ¶àÀ¸Íø¸ñÖØÐ¸ñʽ»¯µÄ½á¹û¼¯¡£ÐèҪעÒâµÄÊÇÕâÀォ²»¿ÉÓ¡Ë¢µÄ¿ØÖÆ×Ö·ûÒÔ·½À¨ºÅ±íʾ¡£ÓÉÓÚÐí¶àÒòËØÏÞÖÆ£¬ÈçËù°²×°µÄ×ÖÌå»òÓïÑÔ²»Í¬£¬Ï±íµÄÏÔʾ¿ÉÄÜ»áÓÐÉÔÐí²îÒì¡£

UNICODE()º¯ÊýÊÇASCII()µÄUnicodeµÈ¼Ûº¯Êý£¬NCHAR()º¯ÊýºÍCHAR()º¯ÊýµÄ¹¦ÄÜÏàͬ£¬Ö»²»¹ýNCHAR()ÊÇÓÃÓÚUnicode×Ö·ûµÄ¡£SQL ServerµÄncharÓënvarcharÀàÐÍÄÜ´æ´¢ÈκÎUnicode×Ö·û£¬¿ÉÒÔºÍÕâÁ½¸öº¯ÊýÒ»ÆðʹÓ᣶ÔÓÚÌØ±ð´óµÄÖµ£¬ntextÀàÐͺÍnvarchar(max)ÀàÐÍÒ²Ö§³ÖUnicode×Ö·û¡£

Òª·µ»ØÀ©Õ¹×Ö·û±àÂ뼯ÖеÄ×Ö·û£¬¿ÉÒÔ½«×Ö·û±àÂë´«µÝ¸øNCHAR()º¯Êý£º SELECT NCHAR(220) ·µ»Ø×Öĸ¨¹¡£

SELECT NCHAR(233) ·µ»Ø´øÖØÒô·ûºÅµÄСдe£º¨¦¡£ SELECT NCHAR(241)

·µ»ØÎ÷°àÑÀÓïµÄ\£¬»òÕß´øÓз¢Òô·ûºÅµÄn£º

¡£

µ±È»£¬ASCII±ê×¼Ò²Ö§³ÖËùÓеÄÅ·ÖÞ×Ö·û£¬ËùÒÔʹÓÃCHAR()º¯ÊýÒ²¿ÉÒÔ·µ»ØÕâЩÀ©Õ¹×Ö·û¡£Èç¹û¶Ô256~65536Ö®¼äµÄֵʹÓÃCHAR()º¯Êý£¬·µ»ØÖµ¾ÍºÜÓÐȤÁË¡£ÀýÈ磬ÏÂÃæµÄ²éѯ·µ»ØÏ£À°×Ö·û¦¸£º

SELECT NCHAR(433)

ÏÂÃæµÄ²éѯ·µ»ØÎ÷Àï¶û×ÖĸYa(§Á)¡£ SELECT NCHAR(1071)

CHARINDEX()ºÍPATINDEX()º¯Êý

CHARINDEX()ÊÇԭʼµÄSQLº¯Êý£¬ÓÃÓÚѰÕÒÔÚÒ»¸ö×Ö·û´®ÖÐij×Ó×Ö·û´®µÚÒ»´Î³öÏÖµÄλÖá£È纯ÊýÃûËùʾ£¬Õâ¸öº¯Êý·µ»ØÒ»¸öÕûÐÍÖµ£¬±íʾij×Ó×Ö·û´®µÄµÚÒ»¸ö×Ö·ûÔÚÕû¸ö×Ö·û´®ÖеÄλÖÃË÷Òý¡£ÒÔϽű¾ÓÃÓÚÔÚ×Ö·û´®WashingtonÖÐѰÕÒ×Ó×Ö·û´®shµÄ³öÏÖλÖÃ:

SELECT CHARINDEX('sh', 'Washington')

·µ»ØµÄ½á¹ûÊÇ3£¬±íÃ÷sÊÇ×Ö·û´®WashingtonÖеĵÚ3¸ö×Ö·û¡£Õâ˵Ã÷CHARINDEXº¯ÊýÆ¥Åä×Ö·ûµÄË÷ÒýÊÇ´Ó1¿ªÊ¼µÄ¡£Èç¹ûûÓÐÆ¥Åäµ½Èκνá¹û£¬º¯Êý½«·µ»Ø0¡£ÔÚÕâ¸öÀý×ÓÖÐʹÓÃÁ½¸ö×Ö·û×÷Ϊ×Ó×Ö·û´®²¢Ã»ÓÐÌØ±ðÒâÒ壬µ«ÊÇÈç¹û×Ö·û´®°üº¬¶à¸ös×Ö·û£¬¾ÍÓÐÒâÒåÁË¡£

PATINDEX()º¯ÊýºÍCHARINDEXOº¯ÊýÀàËÆ£¬ËüÖ´ÐÐÏàͬµÄ²Ù×÷£¬µ«·½·¨ÉÔÐí²»Í¬£¬¸Ãº¯ÊýÔö¼ÓÁ˶ÔͨÅä·û(¼´LikeÔËËã·ûÖÐʹÓõÄ×Ö·û)µÄÖ§³Ö¡£¹ËÃû˼Ò壬Ëü½«·µ»ØÒ»¸ö×Ö·ûģʽ