我将如何将日期转换为字符串?我的数据库是plsql,日期是从基本日期选择器插入的,我指定为bdp1。
select * from smsdw.lot_act where (tran_dttm <= to_date('4/20/2012', 'MM/DD/YYYY') and tran_dttm > to_date('4/19/2012' ,'MM/DD/YYYY'))
答案 0 :(得分:1)
您的格式和字符串不一致。
你需要在4前面加0,如下所示:04/20/2012
。
或者您需要调整格式,如下所示: M/D/YYYY
第二眼看,to_date()
documentation没有显示对单M
的支持。您需要在月份中包含前导0,而当天的单D
将是非常愚蠢的。
根据您的评论进行更新。但是,请允许我说,使用字符串连接将数据替换为像 evil 这样的查询,可能会导致您的应用被黑客攻击。
Dim queryString As String = "select * from smsdw.lot_act where (tran_dttm <= to_date( '" & bdp1.ToString("MM/dd/yyyy") & "','MM/DD/YYYY') and tran_dttm > to_date( '" & bdp1.ToString("MM/dd/yyyy") & "' ,'MM/DD/YYYY')"
作为奖励,这样做正确可以避免担心日期格式:
Dim queryString As String = "select * from smsdw.lot_act where tran_dttm <= :bdp1 and tran_dttm > :bdp1 "
command.Parameters.Add(":bdp1", SqlDbType.DateTime).Value = bdp1
但同样:不同的库可能会处理这种略有不同。有些需要:
字符,有些不允许,有些则按顺序工作,而不是名称(意味着你需要两次添加参数)。