如何将varchar设置为实际日期?

时间:2018-06-15 14:01:58

标签: sql sql-server

我有一个名为' Date' (信不信由你),它是Varchar(50)。叹。无论如何,我想将它转换为同一个表中另一个字段中的实际日期。我试了几件事。

UPDATE     TBL_MULTI_LD_Balance_HIST
SET        Actual_Date = Convert(varchar(30), DATE, 23)

UPDATE     TBL_MULTI_LD_Balance_HIST
SET        Actual_Date = Cast(Date As Date)

我一直在将字符串转换为日期时遇到错误。

我认为这应该是一件非常简单的事情。我怎样才能做到这一点?

我正在使用SQL Server 2008。

2 个答案:

答案 0 :(得分:1)

如果是你的日期(06/12/17)dd / mm / yy,那么你可以使用convert函数:

. . .
set Actual_Date = convert(date, '06/12/17', 3)

但是,您也可以使用cast()

答案 1 :(得分:1)

使用CAST应该可以正常工作。这是一个例子:

[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" },
{$unwind : {path: "$items.discounts", preserveNullAndEmptyArrays: true}}
]

enter image description here

如果您想要时间戳部分,也可以将DATE列和CAST更改为DATETIME。