杂记
Convert 与强制类型转化的区别:Convert会四舍五入,而强制类型转化不会
as不可以操作基元类型
“==”和“Equals”都倾向于这样的一种比较:对于值类型,如果类型的值相等,则返回true,对于引用类型,如果类型指向同一个对象,则返回Ture;但是对于string这样一个特殊的引用类型,微软觉得它的现实意义更接近于值类型,所以在FCL中,string的比较被重载为针对“类型的值”的比较,而不是针对引用本身的比较。
mysql中对于时间格式应该采用'2014-02-01 07:00:00'这样的格式,而不要采用'20140201 07:00:00'这样的格式,因为这样的时间格式是不识别的。
在C#中,DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")表示的12小时制,而DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")则表示的是24小时制。
sql like后运用sqlparam 应这样写 "...like '%'+@name+'%' ..." 然后给@name赋值
如果使用AS赋给列一个别名并且在WHERE子句中使用该列,那么必须通过它的原名来引用,而不能使用别名。如果AS子句是在数据保存的查询或者视图中,那么可以在WHERE子句后使用别名。
sql的select语句给变量赋值,只能对select中的每个字段都给变量赋值,否则会执行报错
一个可供参考的sql语句
exec('with C as(select A.f_id,A.f_selbody,A.f_selanswer,B.f_style1,B.f_ways,'+@selman+' as f_selman,B.f_id as f_oldoneid,A.f_class,B.f_answer as f_oldanswer FROM ddt_t_questions as A left join ddt_t_question
as B on A.f_relateid =B.f_id left join ddt_t_questiontext as D on A.f_relateid=D.f_relateid where D.f_waysize<10 and A.f_selanswer not like ''%,%'' and A.f_class like '''+ @bgrade + '%'' and A.f_mainsec in ('+@mainsecid+') )
insert into ddt_t_quesways (f_qid,f_oldbody,f_oldselnohtmlanswer,f_style1,f_oldways,f_selman,f_state,f_oldoneid,f_class,f_oldanswer)
output INSERTED.f_qid, INSERTED.f_oldbody,INSERTED.f_oldselnohtmlanswer,INSERTED.f_style1,INSERTED.f_oldways,INSERTED.f_selman,INSERTED.f_state,INSERTED.f_class,INSERTED.f_oldanswer
select top 1 C.f_id,C.f_selbody,C.f_selanswer,C.f_style1,C.f_ways,C.f_selman,0 as f_state,C.f_oldoneid,C.f_class,C.f_oldanswer from C left join ddt_t_quesways as D on C.f_id=D.f_qid where D.f_qid is null
')
可参考的有三方面:在sql拼接语句中like的用法,output的用法和in内为int型集合的写法
sql like查询区分大小写: COLLATE Latin1_General_CS_AS 例:select f_name from tab where f_name COLLATE Latin1_General_CS_AS like '%E%'