最近用到的一些方法技巧

郁闷,msn上不去,没法干活。
记上最近项目中用到的一些code snippet


1.查询今天的记录

select datediff(dd,ConvDateTime,getdate()),* from dbo.rbConversationMaster where datediff(dd,ConvDateTime,getdate())=0


DataDiff

Returns the number of date and time boundaries crossed between two specified dates.

Syntax

DATEDIFF ( datepart , startdate , enddate )

Arguments

datepart

Is the parameter that specifies on which part of the date to calculate the difference. The table lists dateparts and abbreviations recognized by Microsoft® SQL Server™.

Datepart Abbreviations
Year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms

哈哈,以前的办法很笨的,(YEAR(dbo.DocInfo.CreateDateTime) = @year) AND
      (MONTH(dbo.DocInfo.CreateDateTime) = @month) AND (DAY(dbo.DocInfo.CreateDateTime) = @day)

2.正则表达式匹配

(1) 如下内容要求匹配出[ ]的内容

:) 您需要查询的客户信息如下:
姓名:[ContactName]
公司:[CompanyName]
职位:[ContactTitle]
地址:[Address]
国家:[Country]
电话:[Phone]
传真:[Fax]

(I) 您现在可以输入另外一个客户的姓名(比如 Maria 或 Maria Anders)继续查询,或者输入 b 或 back 重新显示菜单提示,输入 help 或 ? 返回到主菜单。


表达式: 
        (\[[^\]]+\])

匹配代码:
   

List<string> retList=new List<string>();
retList.Clear();
Regex reg 
= new Regex(@"(\[[^\]]+\])", RegexOptions.Singleline);
MatchCollection matchcol
= reg.Matches(formatstring);
for (int i = 0; i < matchcol.Count; i++)
{
    retList.Add(matchcol[i].Value.TrimStart(
'[').TrimEnd(']'));
}
return retList;


(2) 如下内容匹配出 for i 到 next 中间的内容,group

:-O 系统中有多个客户的姓名类似,并符合您的查询要求:

for i[CompanyName] 的 [ContactName],他的职位是 [ContactTitle]
next
(I) 您现在可以输入序号来显示指定客户的详细信息,或者输入 b 或 back 重新显示菜单提示,输入 help 或 ? 返回到主菜单。

表达式:
(for i)([^\r|\n]+(\r|\n))next

匹配代码:

Regex reg = new Regex(@"(for i)([^\r|\n]+(\r|\n))next", RegexOptions.Multiline);
Match match
=reg.Match(m_multiformat);
string body=match.Groups[2].Value;



 

posted @ 2006-05-24 11:57  upzone  阅读(329)  评论(1编辑  收藏  举报