【发布时间】:2015-06-18 11:25:09
【问题描述】:
我有一个检索数据的 SQL 函数,但我的数据库有问题,之前处理它的那个人将字段设置为 NVARCHAR 而不是 DATETIME,所以现在我无法整理日期或选择之间的数据范围。
假设我有一个查询:
Select order_confirmation.oc_number as oc,
order_confirmation.count as cnt,
order_confirmation.status as stat,
order_confirmation.po_number as pon,
order_summary.date_delivered as dd,
order_summary.delivery_quantity as dq,
order_summary.is_invoiced as iin,
order_summary.filename as fn,
order_summary.invoice_number as inum,
order_summary.oc_idfk as ocidfk,
order_summary.date_invoiced as di
FROM
order_confirmation,order_summary
where order_confirmation.id = order_summary.oc_idfk
order by order_summary.date_delivered DESC
我想将 order_summary.date_delivered 转换为 DATETIME 格式,以便 ORDER BY 语句能够正常工作。请注意,我不想永久更改数据库结构上的数据类型,只能在查询中更改。我尝试搜索并尝试其他解决方案但无法正常工作,而且我还不熟悉 SQL Server。
谢谢
助手:
【问题讨论】:
-
只需使用
convert(datetime, date_delivered, <type>)。然后使用正确的类型修复您的数据以存储日期/时间值——这不是字符串。 -
我明白了,将表达式转换为数据类型日期时间的算术溢出错误。我选择了 110 作为类型
-
使用示例数据设置 SQL Fiddle,也许有人可以帮助您。我们怎么知道你的约会是什么样的?
-
我的日期看起来像这样 13-06-2013
-
正确的格式是105。
标签: sql sql-server type-conversion