SQL查询-仅拉回日期

时间:2018-07-05 14:27:44

标签: sql tsql sql-server-2012

我认为这将是一个简单的命令,很明显,我在此过程中缺少了一些东西。我有SQL Server2012。我有一个名为Messages的表,其中有一个列MessageTime。此列以以下格式存储日期和时间

DD-MM-YYYY - 00:00:00

我想提取前10个字符并将其放在单独的列中,以便我可以将它们进一步分组到查询中。但是以下命令仍然失败,我在这里缺少什么语法。

SELECT CONVERT(varchar(10), MessageIdTime, 101) 

其中MessageIdTime是列名。...

谢谢 SW

3 个答案:

答案 0 :(得分:0)

SELECT SUBSTRING(MessageIdTime, 1, 10)

答案 1 :(得分:0)

我建议将其提取为日期:

select try_convert(date, left(MessageIdTime, 10)) as MessageIdDate

实际上,您应该将列更改为包含日期/时间类型而不是字符串。

日期可能非常有用,您可以将其添加到表格中

alter table t as MessageIdDate as ( try_convert(date, left(MessageIdTime, 10)) );

答案 2 :(得分:0)

您可以使用left()函数:

SELECT CAST(LEFT(MessageIdTime, 10) AS DATE)