作者ntouckcm (知足常乐)
看板Database
标题Re: [SQL ] 日期问题
时间Tue Apr 28 16:07:05 2009
请问一下 若是我用
cmd ="SELECT * FROM 科别 WHERE 病历号码='"&id&"' AND
'"&MONTH("日期")&"'= '"&MONTH(date_no)&"'"
会出现
Microsoft VBScript 执行阶段错误 错误 '800a000d'
型态不符合: '[string: "日期"]'
他不是String型态是datetime
---------------------------------------------------------------------
我试
cmd ="SELECT * FROM 科别 WHERE 病历号码='"&id&"' AND
'"& MONTH(CONVERT(varchar,"日期"))&"'= '"&MONTH(date_no)&"'"
也没有成功
Microsoft VBScript 执行阶段错误 错误 '800a000d'
型态不符合: 'CONVERT'
请问大家有没有好方法可以解决呢?
※ 引述《regionbbs (小朱)》之铭言:
: ※ 引述《ntouckcm (知足常乐)》之铭言:
: : 请问一下
: : datetime 形式是否可以直接比对
: : cmd ="SELECT * FROM 科别 WHERE 病历号码='"&id&"' AND
: : 日期= '2009/4/24 下午 04:00:00'"
: : 他就出现
: : Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'
: : [Microsoft][ODBC SQL Server Driver][SQL Server]从字元字串转换到 datetime 时
: : ,转换失败。
: : ------------------------------------------------------------
: : 而我改成
: : cmd ="SELECT * FROM 科别 WHERE 病历号码='"&id&"' AND
: : 'CONVERT(varchar,日期,120)'= '2009/4/24 下午 04:00:00'"
: : 他就出现
: : HTTP 500 内部伺服器发生错误
: : 请问是否可以比对时间呢?谢谢~
: 1.
: 日期时间字串中不可以有中文字,除非哪天 SQL Server Team 中有台湾人,而他
: 把"上午/下午"的辨识做到 SQL Server 中。
: 2.
: 要比对日期时间,可以多善用日期与时间函数来做。
: 3.
: 你这个 SQL 写法,如果哪天被人家用 SQL Injection 入侵的话,自行负责吧...
: 多用参数化查询来写会好非常多。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.121.219.142