如何使用类型转换编写Linq to SQL查询?

3

我该如何编写一个转换为以下内容的Linq to SQL查询:

SELECT CAST(DATETEXT AS datetime) FROM mytable
2个回答

1
var dates = from row in mytable
            select DateTime.Parse(row.DATETEXT);

DateTime.Parse的方法重载,允许您指定一个格式。


但是 DateTime.Parse 将在客户端上执行,而不是在 SQL 数据库中执行,对吗?我很好奇是否可能让查询将其转换为 tsql CAST,并让 SQL 服务器执行转换。 - Peter Moberg
1
@Peter:你可以尝试直接强制转换(DataTime)row.DATETEXT,然后查看SQL的输出。 - Matt Ellen
我尝试过这个,但跟踪显示它执行了以下SQL语句:“SELECT [t0].[DATETEXT] FROM [mytable] AS [t0]”。因此,客户端中进行了转换。 - Peter Moberg

-1

其实,你不需要那个。只需在使用字段值时将其解析为日期时间即可。这是一个例子;

var query = from c in mytable
            select c;

那么当你使用它时;

DateTime _value = (DateTime)query.SingleOrDefault().DATETEXT

但如果你非常想使用它,这里有一个例子;

NorthwindEntities _e = new NorthwindEntities();

public void poo() {

    var query = from e in _e.Products
                select DateTime.Parse(e.DateText);

}

我知道这是完全可能的,但我更感兴趣的是是否有任何 Linq to SQL 中的转换可以转换为 TSQL CAST。 - Peter Moberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接