Asp classic,如何选择在数据库文本字段中存储为字符串的字符串日期?
Posted
技术标签:
【中文标题】Asp classic,如何选择在数据库文本字段中存储为字符串的字符串日期?【英文标题】:Asp classic, How to select a string date which is stored as a string in database text field? 【发布时间】:2016-12-20 15:05:48 【问题描述】:在数据库中存储为字符串的日期。 我无法在两个日期之间进行选择或制作“ORDER BY date_field DESC”
sql="SELECT * FROM payments where p_dat Between #"&from_d&"# AND #"&to_d&"# ORDER BY p_dat DESC"
但 p_dat 是一个文本字段,不是数据库中的日期/时间。
我想在不将日期字段更改为日期/时间的情况下这样做。 谢谢
【问题讨论】:
首先在子查询中将字符串转换为datetime
,然后进行比较。你用的是什么数据库?
请您解释一下如何做到这一点。使用访问数据库。谢谢
Convert String to Date in MS Access Query的可能重复
【参考方案1】:
Access 数据库 SQL 具有可用的 CDate() 函数。
sql="SELECT * FROM payments where Cdate(p_dat) Between #" & from_d & "# AND #" & to_d & "# ORDER BY Cdate(p_dat) DESC"
我已经在 Office 2007 数据库上对此进行了测试。
【讨论】:
做得很好,正是我在上面回答中的意思 这完全取决于日期字符串的结构以及CDate()
是否可以将其转换为真实日期。
这就是我要找的。非常非常感谢你。你是王子。【参考方案2】:
您可以在 SQL Select 语句中将数据库的文本字段值包装在 CDate() 中,以将它们转换为日期以进行比较。
see a similar answer here
【讨论】:
当数据作为字符串存储在数据库中时,OP 要求在查询中比较日期,而不是将字符串转换为 Classic ASP / VBScript 中的日期。 存储在数据库中的不是日期/时间对象...使用 CDATE() 会将其转换为日期/时间对象,从而使其可用于日期比较。正如下面的答案所述,您可以在 Access 数据库 SQL 语句/查询中使用 CDate()。 我没说是,我说的是“当数据存储为字符串时”。这一切都发生在 OP 确认他们无论如何都在使用 ms-access 之前。我的评论针对linked answer。以上是关于Asp classic,如何选择在数据库文本字段中存储为字符串的字符串日期?的主要内容,如果未能解决你的问题,请参考以下文章
如何在同一个 Visual Studio 解决方案中设置 ASP Classic 和 ASP.NET WebForm - 用于在 ASP.NET WebForm 中重写 ASP Classic 页面
如何在 VBScript for Classic-ASP 中执行单行 If 语句?
将Classic Textfield动态转换为TFL Textfield?
如何在 asp classic 中使用 ionic zip 或 dot net zip