我将如何将日期转换为字符串?我的数据库是 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 在 4 前面,像这样:04/20/2012
.
或者您需要调整格式,如下所示:M/D/YYYY
再
看一遍,to_date()
文档不显示对单个M
. 您需要在您的月份中包含前导 0,而D
一天中的单个将是非常愚蠢的。
基于您的评论的更新。不过,让我带头说,使用字符串连接将数据替换为这样的查询是邪恶的,并且可能导致您的应用程序被黑客入侵。
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
但同样:不同的库可能处理这个略有不同。有些需要:
字符,有些不允许,有些则按顺序工作,而不是名称(这意味着您需要添加两次参数)。