我认为这将是一个简单的命令,很明显,我在此过程中缺少了一些东西。我有SQL Server2012。我有一个名为Messages
的表,其中有一个列MessageTime
。此列以以下格式存储日期和时间
DD-MM-YYYY - 00:00:00
我想提取前10个字符并将其放在单独的列中,以便我可以将它们进一步分组到查询中。但是以下命令仍然失败,我在这里缺少什么语法。
SELECT CONVERT(varchar(10), MessageIdTime, 101)
其中MessageIdTime
是列名。...
谢谢 SW
答案 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)