Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

SQLÓÃDataDiff²éѯµÄ¹ÖÏÖÏó¶øÒý·¢µÄ˼¿¼¡£¡£

½ñÌìÓÖ¿´µ½ÐÂ¼ÓÆÂµÄͬÊ·¢¹ýÀ´µÄÒ»¶ÎSQLÓï¾ä£¬»¹ÊÇÀÏÎÊÌ⣬ʱ¼ä¶Ô±ÈÖ±½ÓÓôóÓÚСÓںš£Ì¾ÁËÉùÆøºó£¬ÊÖ¶¯¸ø¸Ä³ÉdatediffÁË£¬¿ÉÊÇÒ»ÔËÐгö´í£¬´íÎóÌáʾÈçÏ£º
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting datetime from character string.
ΪÁË˵Ã÷·½±ã£¬ÕâÀï¾Í¼ò»¯Ò»¸öÀý×ÓºÃÁË¡£
create table a
(
   id int not null,
   val   varchar(20)
)
insert into a values (1, '2009-05-02')
insert into a values (2, 'abc')
insert into a values (3, '2009-12-10')
ÎÒµÄÓï¾äÊÇÕâÑùµÄ:
select * from a where id in (1,3) and datediff(day, convert(datetime,val),getdate()) < 0
°´³£Àí£¬ÎÒÏÈÕÒµ½id= 1»ò3µÄ¼Ç¼£¬È»ºóÔÙ¸ú½ñÌì±È½Ï£¬Ó¦¸Ã»á·µ»Øid=1µÄ¼Ç¼°¡¡£¿ÉÊǾÓÈ»³öÏÖÈçÏ´íÎó£º
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting datetime from character string.
¿ÉÊǵ±ÎÒÖ´ÐУº
select datediff(day, convert(datetime,val),getdate()) from a where id in (1,3)
ÕâʱºòÓÖÊÇÄܹ»Ö´Ðеġ£ Õâ¾ÍÊÇ˵ÔÚ½øÐÐ1»ò3µÄÅжÏǰ£¬ÒѾ­¶Ôid=2ÕâÌõ¼Ç¼ִÐÐÁËconvert£¬ËùÒÔ³ö´íÁË¡£
Óɴ˿ɼû£¬Óï¾ä²¢²»ÊÇÎÒÃÇÏëÏóµÄÓÉÉϵ½ÏÂÖ´Ðеģ¬ÄѵÀÊÇÓÉÏÂÏòÉÏÖ´Ðеģ¿»»³ÉÈçÏÂÓï¾ä:
select * from a where datediff(day, val,getdate()) < 0 and id in (1,3)
´íÎóÒÀ¾É¡£
ÔÎÁË£¬²»ÊÇÓÉÉϵ½Ï£¬Ò²²»ÊÇÓÉϵ½ÉÏ£¬ÄѵÀÕâ¸ö˳Ðò²»Êǹ̶¨µÄ£¿ ×Ðϸ·ÖÎöһϣ¬ÉÏÃæÒ»¸ö¿ÉÒÔÖ´ÐеÄÓï¾ä¿ÉÒÔ·¢ÏÖ,
ÓÉÓÚconvertº¯ÊýÊÇÔÚËù²éѯ³öÀ´µÄ½á¹û¼¯ÉÏÔÙ½øÐеÄת»»£¬¶øÇÒid = 1»ò3µÄ¼Ç¼ÖеÄvalÁж¼ÊÇ¿ÉÒÔת»»ÎªÊ±¼äÀàÐ͵ģ¬ËùÒÔ
ûÓÐÈκδíÎó¡£ ÆäËûÁ½¸öÔËÐÐÓдíÎóµÄÓï¾äÖУ¬ÔÚÖ´ÐеÄʱºò¶¼ÊÇÔÚ±íÖÐËùÓмǼµÄ»ù´¡ÉÏ£¬Ïȵ÷ÓÃconvertÕâ¸öÌõ¼þµÄ£¬ËùÒÔ
µ±Óöµ½id=2ÕâÌõ¼Ç¼ʱ£¬¾Í»á³ö´í¡£¼ÈÈ»SQL server²»Êǰ´ÕÕÎÒÃÇÏëÒªµÄ˳ÐòÈ¥Ö´ÐУ¬ÄÇôÎÒÃÇÄܲ»ÄÜÇ¿ÖÆÈÃËüÈ¥°´ÎÒÃǵÄËùÒªÇóµÄ
˳ÐòÈ¥Ö´ÐÐÄØ£¿
ÓÚÊǺõ£¬ºÃÓõÄcase when ¾ÍÅÉÉÏÓó¡ÁË¡£ÎÒ°ÑÉÏÃæµÄÓï¾ä¸ÄΪÈçÏ£º
select * from a where (case when id in (1,3) then datediff(day, convert(datetime,val),getdate()) else 1 end) < 0
ÈçÉÏÃæËùʾ£¬ÔÚwhere Ìõ¼þÖУ¬Ê×ÏÈÅÐ¶Ï µ± id in (1,3) £¬Ôò½øÐÐdatediffºÍconvertº¯ÊýµÄµôÓ㬴ËʱֻÓÐid = 1»ò3µÄ¼Ç¼²Å»áµ÷ÓÃconvertº¯Êý£¬ËùÒÔ´Ëʱ¿Ï¶¨²»»á³ö´í£¬ÆäËûµÄÖ±½Ó·µ»ØÒ»¸ö¿


Ïà¹ØÎĵµ£º

ʹÓÃSQLServerÄ£°åÀ´Ð´¹æ·¶µÄSQLÓï¾ä

Èç¹ûÄã¾­³£Óöµ½ÏÂÃæµÄÎÊÌ⣬Äã¾ÍÒª¿¼ÂÇʹÓÃSQL ServerµÄÄ£°åÀ´Ð´¹æ·¶µÄSQLÓï¾äÁË£º
SQL³õѧÕß¡£
¾­³£Íü¼Ç³£ÓõÄDML»òÊÇDDL SQL Óï¾ä¡£
ÔÚ¶àÈË¿ª·¢Î¬»¤µÄSQLÖУ¬Ã¿¸öÈ˶¼ÓÐ×Ô¼ºµÄSQLϰ¹ß£¬Ã»ÓÐÒ»Ì×ͳһµÄ¹æ·¶¡£
ÔÚSQL Server Management StudioÖУ¬ÒѾ­¸ø´ó¼ÒÌṩÁ˺ܶೣÓõÄÏÖ³ÉSQL¹æ·¶Ä£°å¡£
SQL Server Management ......

SQL ÐÐÁл¥×ª

--ÐÐÁл¥×ª
/******************************************************************************************************************************************************
ÒÔѧÉú³É¼¨ÎªÀý×Ó£¬±È½ÏÐÎÏóÒ×¶®
ÕûÀíÈË£ºÖйú·ç(Roy)
ÈÕÆÚ:2008.06.06
***************************************************************** ......

Oracle SQLµÄÓÅ»¯

ÏëÆðÀ´ÉÏ´ÎÃæÊÔµÄʱºòÄǸöÃæÊÔ¹ÙÎÊÎÒ
“Äã¶ÔÓÅ»¯·½ÃæÁ˽â¶àÉÙ”
“ORACLEÓÅ»¯»¹ÊÇSQLÓÅ»¯”
“SQLÓÅ»¯”
“Õâ¸ö……²»ÖªµÀ´ÓºÎ˵Æð”
“ºÇºÇ£¬ÄÇÎÒÎÊÄãÎÊÌâºÃÁË£¬ÎÊÎʾÍÖªµÀÄã´ó¸ÅʲôˮƽÁË”
“ºÇºÇ£¬ºÃ°É”
……
½á¹ûºÃÏñ ......

SQL*PLUS³£ÓÃÃüÁîʹÓôóÈ«

OracleµÄsql*plusÊÇÓëoracle½øÐн»»¥µÄ¿Í»§¶Ë¹¤¾ß¡£ÔÚsql*plusÖУ¬¿ÉÒÔÔËÐÐsql*plusÃüÁîÓësql*plusÓï¾ä¡£ 
ÎÒÃÇͨ³£Ëù˵µÄDML¡¢DDL¡¢DCLÓï¾ä¶¼ÊÇsql*plusÓï¾ä£¬ËüÃÇÖ´ÐÐÍêºó£¬¶¼¿ÉÒÔ±£´æÔÚÒ»¸ö±»³ÆÎªsql bufferµÄÄÚ´æÇøÓòÖУ¬²¢ÇÒÖ»Äܱ£´æÒ»Ìõ×î½üÖ´ÐеÄsqlÓï¾ä£¬ÎÒÃÇ¿ÉÒÔ¶Ô±£´æÔÚsql bufferÖеÄsql Óï¾ä½øÐÐÐ޸ģ¬È» ......

±¸·ÝSQL Server 2005Êý¾Ý¿âµ½Ö¸¶¨Ä¿Â¼µÄSQL½Å±¾

IF EXISTS (SELECT name from master.dbo.sysdatabases WHERE name = N'MyDatabase')
DECLARE @backupdate varchar(255);
DECLARE @result int
DECLARE @result1 int
DECLARE @dbid uniqueidentifier
SET @dbid = NEWID()
EXEC @result = xp_cmdshell 'cd D:\SQLServerBackups';
IF (@result = 1)
EXEC @result1 = ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ