0

我将如何将日期转换为字符串?我的数据库是 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'))
4

1 回答 1

1

你的格式和你的字符串不同意。

你需要一个 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

但同样:不同的库可能处理这个略有不同。有些需要:字符,有些不允许,有些则按顺序工作,而不是名称(这意味着您需要添加两次参数)。

于 2013-06-28T04:28:41.120 回答