当我的列在 Sql Server 2017 和 C# 中键入字符串时如何按日期排序?
How to Order by date when my Column is type String in Sql Server 2017 and C#?
我想在我的数据库中按日期排序,但我做不到,因为它给我一个错误。我正在使用 SQL Server 2017。
我已经阅读了其他关于它的文章,但是当我尝试时它仍然给我同样的错误。
我的 table 名称是 "Ferramentas",我的专栏名称是 "DataCriacao"。我试过这个:
Select * From Ferramentas order By CONVERT(date, Data_Criação,101) Desc
我也试过:
Select * From Ferramentas Order By Cast(Data_Criação As Date) Desc
错误是:
Conversion failed when converting date and/or time from character string
在我的数据库中 "Data_Criacao" 类型是 nchar(20).
我的日期类似于“2018 年 12 月 5 日”
我的 SQL 服务器和 C# 代码需要这个,因为我正在做一个应用程序,有些数据格式不正确,我无法更改,我只能调整我的代码以适应这个。
你能帮帮我吗?
不清楚格式是 103 还是 101。假设您的日期是 mm/dd/yyyy.
最好的猜测是并非所有日期都采用该格式。所以,使用 try_convert()
:
order By try_convert(date, Data_Criação, 101) desc
要查找有问题的值,请编写如下查询:
select Data_Criação
from Ferramentas
where try_convert(date, Data_Criação, 101) is null;
在此过程中,考虑如何修复您的数据模型,以便使用正确的类型存储值。
我想在我的数据库中按日期排序,但我做不到,因为它给我一个错误。我正在使用 SQL Server 2017。
我已经阅读了其他关于它的文章,但是当我尝试时它仍然给我同样的错误。
我的 table 名称是 "Ferramentas",我的专栏名称是 "DataCriacao"。我试过这个:
Select * From Ferramentas order By CONVERT(date, Data_Criação,101) Desc
我也试过:
Select * From Ferramentas Order By Cast(Data_Criação As Date) Desc
错误是:
Conversion failed when converting date and/or time from character string
在我的数据库中 "Data_Criacao" 类型是 nchar(20).
我的日期类似于“2018 年 12 月 5 日”
我的 SQL 服务器和 C# 代码需要这个,因为我正在做一个应用程序,有些数据格式不正确,我无法更改,我只能调整我的代码以适应这个。
你能帮帮我吗?
不清楚格式是 103 还是 101。假设您的日期是 mm/dd/yyyy.
最好的猜测是并非所有日期都采用该格式。所以,使用 try_convert()
:
order By try_convert(date, Data_Criação, 101) desc
要查找有问题的值,请编写如下查询:
select Data_Criação
from Ferramentas
where try_convert(date, Data_Criação, 101) is null;
在此过程中,考虑如何修复您的数据模型,以便使用正确的类型存储值。