【发布时间】:2013-09-24 14:46:55
【问题描述】:
你知道我如何在 SQL Server 2008 中将 yyyy-dd-mm hh:mm:ss 转换为 yyyy-mm-dd hh:mm:ss 吗?
我尝试了SELECT convert(varchar, StateChangeTime, 120) from History,但它无法区分 9 号作为一个月和一天之间的差异,因此什么也没做。
stateChangeTime 是一个 dateTime2
我要转换的示例日期2013-03-09 19:29:25 应该是2013-09-03 19:29:25
救命!
【问题讨论】:
-
我在这里遗漏了一些东西。如果您调用
CONVERT()函数要求字符串类型的输出,如varchar,那么它需要一个日期类型的输入,如日期时间。但是你说的StateChangeTime也是一个varchar。要么将日期值存储为字符串(不要那样做!),要么你对日期时间值的实际存储方式感到困惑。日期时间值以不可读的二进制格式存储,并且仅以您可以通过查询工具读取的方式显示。 -
SQL Server 识别的任何格式中都没有 yyyy-dd-mm 格式,因此您需要将组件中的字符串切分并重新排列。
-
stateChangeTime 是 dateTime2 类型,更新问题
-
@Guffa- 好的,我从解释奇怪格式的 excel 文件中填充了表格,你能告诉我如何将它切碎并重新排列吗??
标签: sql sql-server-2008 datetime casting