C# 如何在SQL Server中选择日期类型为“DD-MM-YYYY”的值

C# 如何在SQL Server中选择日期类型为“DD-MM-YYYY”的值,c#,sql-server,date,C#,Sql Server,Date,我在SQL Server数据库表中有一个类型为date的creationDate列。我想选择DD-MM-YYYY格式 但是,当我尝试使用 SELECT CONVERT(varchar(10), creationDate, 105) FROM tableName 在我的C应用程序中 错误消息是: 在上找不到名为“creationDate”的字段或属性 选定的数据源 在查询中为该列设置别名以解决问题 SELECT CONVERT(varchar(10), creationDate, 105) [

我在SQL Server数据库表中有一个类型为date的creationDate列。我想选择DD-MM-YYYY格式

但是,当我尝试使用

SELECT CONVERT(varchar(10), creationDate, 105) 
FROM tableName
在我的C应用程序中

错误消息是:

在上找不到名为“creationDate”的字段或属性 选定的数据源


在查询中为该列设置别名以解决问题

SELECT CONVERT(varchar(10), creationDate, 105) [creationDate] FROM tableName

SQL Server不为输出列提供任何默认别名。当前查询SELECT CONVERTvarchar10,creationDate,105 FROM tableName不会输出creationDate列名,如下面的快照所示。它说-没有列名:

您必须在SQL查询中提供列别名,以便C在应用程序端捕获,如下面的快照所示:

从tableName中选择CONVERTvarchar10,creationDate,105作为[creationDate]


这将解决您的问题,但始终建议您在应用程序层上进行此类转换,因为此类转换需要考虑应用程序运行所在的客户端计算机的区域设置和时区。这是因为开发人员通常以24小时日期时间格式将日期时间数据以GMT格式存储在数据库中

这与日期转换无关。我打赌从tableName中选择creationDate不起作用。使用creationDate中的SELECT*并检查列的确切名称。旁注:使用char10而不是varchar10。转换将始终返回10个具有此样式的字符。@user3185569“从tableName中选择creationDate”是成功的,但结果将是2016年7月29日12:00:00 AM…将此类格式详细信息留给使用此结果集的应用程序或报表处理程序几乎总是更好的,而不是在SQL中完成,这与性能无关。这是关于保持事物的自然数据类型,而不是作为字符串-您目前可能对客户端的任何后处理没有任何要求,但一旦提出排序或应用客户端的区域设置等要求,从原始数据而不是字符串进行工作就容易得多。另外,大多数语言都有T-SQL所具有的更丰富的文本处理功能。格式化应该在前端。不在数据级别。