mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-03 23:10:54 +08:00
update
1
更新日志.md
1
更新日志.md
@@ -8,6 +8,7 @@
|
||||
- 整理 延时加载/导航属性查询的对象关系,仍然不依赖外键;
|
||||
- 完成 OneToOne/ManyToOne、ManyToMany/OneToMany 导航属性的查询 [#15](https://github.com/2881099/FreeSql/issues/15);
|
||||
- 增加 IEnumerable<TEntity> 扩展方法 AsSelect,转成 ISelect<T>,以便使用 FreeSql 的查询功能;
|
||||
- 增加 int.Parse Guid.Parse 系列转换、Guid.NewGuid、new Random.NextDouble 等表达式函数解析;
|
||||
|
||||
## v0.3.16
|
||||
|
||||
|
||||
46
表达式函数.md
46
表达式函数.md
@@ -34,6 +34,15 @@ var t1 = select.Where(a => new[] { 1, 2, 3 }.Contains(a.testFieldInt)).ToSql();
|
||||
var t2 = select.Where(a => a.CreateTime.Date == DateTime.Now.Date).ToSql();
|
||||
```
|
||||
|
||||
## SqlServer 下随机获取记录
|
||||
|
||||
```csharp
|
||||
var t3 = select.OrderBy(a => Guid.NewGuid()).Limit(1).ToSql();
|
||||
//SELECT top 1 ...
|
||||
//FROM [tb_topic] a
|
||||
//ORDER BY newid()
|
||||
```
|
||||
|
||||
## 表达式函数全览
|
||||
|
||||
| 表达式 | MySql | SqlServer | PostgreSQL | Oracle | 功能说明 |
|
||||
@@ -203,23 +212,26 @@ var t2 = select.Where(a => a.CreateTime.Date == DateTime.Now.Date).ToSql();
|
||||
| Math.Truncate(a) | truncate(a, 0) | floor(a) | trunc(a, 0) | trunc(a, 0) |
|
||||
|
||||
### 类型转换
|
||||
| 表达式 | MySql | SqlServer | PostgreSQL | Oracle |
|
||||
| - | - | - | - | - |
|
||||
| Convert.ToBoolean(a) | a not in ('0','false') | a not in ('0','false') | a::varchar not in ('0','false','f','no') | - |
|
||||
| Convert.ToByte(a) | cast(a as unsigned) | cast(a as tinyint) | a::int2 | cast(a as number) |
|
||||
| Convert.ToChar(a) | substr(cast(a as char),1,1) | substring(cast(a as nvarchar),1,1) | substr(a::char,1,1) | substr(to_char(a),1,1) |
|
||||
| Convert.ToDateTime(a) | cast(a as datetime) | cast(a as datetime) | a::timestamp | to_timestamp(a,'YYYY-MM-DD HH24:MI:SS.FF6') |
|
||||
| Convert.ToDecimal(a) | cast(a as decimal(36,18)) | cast(a as decimal(36,19)) | a::numeric | cast(a as number) |
|
||||
| Convert.ToDouble(a) | cast(a as decimal(32,16)) | cast(a as decimal(32,16)) | a::float8 | cast(a as number) |
|
||||
| Convert.ToInt16(a) | cast(a as signed) | cast(a as smallint) | a::int2 | cast(a as number) |
|
||||
| Convert.ToInt32(a) | cast(a as signed) | cast(a as int) | a::int4 | cast(a as number) |
|
||||
| Convert.ToInt64(a) | cast(a as signed) | cast(a as bigint) | a::int8 | cast(a as number) |
|
||||
| Convert.ToSByte(a) | cast(a as signed) | cast(a as tinyint) | a::int2 | cast(a as number) |
|
||||
| Convert.ToString(a) | cast(a as decimal(14,7)) | cast(a as decimal(14,7)) | a::float4 | to_char(a) |
|
||||
| Convert.ToSingle(a) | cast(a as char) | cast(a as nvarchar) | a::varchar | cast(a as number) |
|
||||
| Convert.ToUInt16(a) | cast(a as unsigned) | cast(a as smallint) | a::int2 | cast(a as number) |
|
||||
| Convert.ToUInt32(a) | cast(a as unsigned) | cast(a as int) | a::int4 | cast(a as number) |
|
||||
| Convert.ToUInt64(a) | cast(a as unsigned) | cast(a as bigint) | a::int8 | cast(a as number) |
|
||||
| 表达式 | MySql | SqlServer | PostgreSQL | Oracle | Sqlite |
|
||||
| - | - | - | - | - | - |
|
||||
| Convert.ToBoolean(a) \| bool.Parse(a) | a not in ('0','false') | a not in ('0','false') | a::varchar not in ('0','false','f','no') | - | a not in ('0','false') |
|
||||
| Convert.ToByte(a) \| byte.Parse(a) | cast(a as unsigned) | cast(a as tinyint) | a::int2 | cast(a as number) | cast(a as int2) |
|
||||
| Convert.ToChar(a) | substr(cast(a as char),1,1) | substring(cast(a as nvarchar),1,1) | substr(a::char,1,1) | substr(to_char(a),1,1) | substr(cast(a as character),1,1) |
|
||||
| Convert.ToDateTime(a) \| DateTime.Parse(a) | cast(a as datetime) | cast(a as datetime) | a::timestamp | to_timestamp(a,'YYYY-MM-DD HH24:MI:SS.FF6') | datetime(a) |
|
||||
| Convert.ToDecimal(a) \| decimal.Parse(a) | cast(a as decimal(36,18)) | cast(a as decimal(36,19)) | a::numeric | cast(a as number) | cast(a as decimal(36,18)) |
|
||||
| Convert.ToDouble(a) \| double.Parse(a) | cast(a as decimal(32,16)) | cast(a as decimal(32,16)) | a::float8 | cast(a as number) | cast(a as double) |
|
||||
| Convert.ToInt16(a) \| short.Parse(a) | cast(a as signed) | cast(a as smallint) | a::int2 | cast(a as number) | cast(a as smallint) |
|
||||
| Convert.ToInt32(a) \| int.Parse(a) | cast(a as signed) | cast(a as int) | a::int4 | cast(a as number) | cast(a as smallint) |
|
||||
| Convert.ToInt64(a) \| long.Parse(a) | cast(a as signed) | cast(a as bigint) | a::int8 | cast(a as number) | cast(a as smallint) |
|
||||
| Convert.ToSByte(a) \| sbyte.Parse(a) | cast(a as signed) | cast(a as tinyint) | a::int2 | cast(a as number) | cast(a as smallint) |
|
||||
| Convert.ToString(a) | cast(a as decimal(14,7)) | cast(a as decimal(14,7)) | a::float4 | to_char(a) | cast(a as character) |
|
||||
| Convert.ToSingle(a) \| float.Parse(a) | cast(a as char) | cast(a as nvarchar) | a::varchar | cast(a as number) | cast(a as smallint) |
|
||||
| Convert.ToUInt16(a) \| ushort.Parse(a) | cast(a as unsigned) | cast(a as smallint) | a::int2 | cast(a as number) | cast(a as unsigned) |
|
||||
| Convert.ToUInt32(a) \| uint.Parse(a) | cast(a as unsigned) | cast(a as int) | a::int4 | cast(a as number) | cast(a as decimal(10,0)) |
|
||||
| Convert.ToUInt64(a) \| ulong.Parse(a) | cast(a as unsigned) | cast(a as bigint) | a::int8 | cast(a as number) | cast(a as decimal(21,0)) |
|
||||
| Guid.Parse(a) | substr(cast(a as char),1,36) | cast(a as uniqueidentifier) | a::uuid | substr(to_char(a),1,36) | substr(cast(a as character),1,36) |
|
||||
| Guid.NewGuid() | - | newid() | - | - | - |
|
||||
| new Random().NextDouble() | rand() | rand() | random() | dbms_random.value | random() |
|
||||
|
||||
## 参考资料
|
||||
|
||||
|
||||
Reference in New Issue
Block a user