【问题标题】:Asp classic, How to select a string date which is stored as a string in database text field?Asp classic,如何选择在数据库文本字段中存储为字符串的字符串日期?
【发布时间】: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,然后进行比较。你用的是什么数据库?
  • 请您解释一下如何做到这一点。使用访问数据库。谢谢

标签: ms-access asp-classic


【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多