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

如何在编辑模式 ASP .Net 中将日期选择器放在 Gridview 中

通过 IIS 在 ASP Classic 中进行 HTTP 身份验证(基本或摘要)[关闭]