mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
测试
This commit is contained in:
parent
a576d157fb
commit
1bc77db2b5
@ -722,13 +722,5 @@
|
|||||||
<param name="that"></param>
|
<param name="that"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Reflection.Assembly[])">
|
|
||||||
<summary>
|
|
||||||
批量注入 Repository,可以参考代码自行调整
|
|
||||||
</summary>
|
|
||||||
<param name="services"></param>
|
|
||||||
<param name="assemblies"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
</members>
|
</members>
|
||||||
</doc>
|
</doc>
|
||||||
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.Custom.MySqlExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.mysql.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.Custom.OracleExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.oracle.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.Custom.PostgreSQLExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.pgsql.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
//data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,210 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.Custom.SqlServerExpression
|
|
||||||
{
|
|
||||||
[Collection("SqlServerCollection")]
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.sqlserver.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.GBaseExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.gbase.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.MySqlConnectorExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.mysql.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,209 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.Odbc.DefaultExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.odbc.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.Odbc.MySqlExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.mysql.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.Odbc.OracleExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.oracle.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.Odbc.PostgreSQLExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.pgsql.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
//data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,210 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.Odbc.SqlServerExpression
|
|
||||||
{
|
|
||||||
[Collection("SqlServerCollection")]
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.sqlserver.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.OracleOledbExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.oracle.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.SqliteExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.sqlite.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.DamengExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.dameng.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.FirebirdExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.firebird.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -18,8 +18,9 @@
|
|||||||
<PackageReference Include="IdleBus" Version="1.5.3" />
|
<PackageReference Include="IdleBus" Version="1.5.3" />
|
||||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.0" />
|
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.0" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
|
||||||
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.1.1" />
|
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.2.1" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
|
||||||
|
<PackageReference Include="Npgsql" Version="6.0.11" />
|
||||||
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.5" />
|
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.5" />
|
||||||
<PackageReference Include="xunit" Version="2.4.1" />
|
<PackageReference Include="xunit" Version="2.4.1" />
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||||
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.KingbaseESExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.kingbaseES.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.MsAccessExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.msaccess.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.MySqlExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.mysql.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.OracleExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.oracle.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -18,6 +18,81 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
{
|
{
|
||||||
public class PostgreSQLCodeFirstTest
|
public class PostgreSQLCodeFirstTest
|
||||||
{
|
{
|
||||||
|
[Fact]
|
||||||
|
public void DateOnlyTimeOnly()
|
||||||
|
{
|
||||||
|
var fsql = g.pgsql;
|
||||||
|
|
||||||
|
var item = new test_DateOnlyTimeOnly01 { };
|
||||||
|
item.Id = (int)fsql.Insert(item).ExecuteIdentity();
|
||||||
|
|
||||||
|
var newitem = fsql.Select<test_DateOnlyTimeOnly01>().Where(a => a.Id == item.Id).ToOne();
|
||||||
|
|
||||||
|
var item2 = new test_DateOnlyTimeOnly01
|
||||||
|
{
|
||||||
|
testFieldDateTime = DateTime.Now,
|
||||||
|
testFieldDateTimeArray = new[] { DateTime.Now, DateTime.Now.AddHours(2) },
|
||||||
|
testFieldDateTimeArrayNullable = new DateTime?[] { DateTime.Now, null, DateTime.Now.AddHours(2) },
|
||||||
|
testFieldDateTimeNullable = DateTime.Now.AddDays(-1),
|
||||||
|
testFieldDateOnly = DateOnly.FromDateTime(DateTime.Now),
|
||||||
|
testFieldDateOnlyArray = new[] { DateOnly.FromDateTime(DateTime.Now), DateOnly.FromDateTime(DateTime.Now.AddHours(2)) },
|
||||||
|
testFieldDateOnlyArrayNullable = new DateOnly?[] { DateOnly.FromDateTime(DateTime.Now), null, DateOnly.FromDateTime(DateTime.Now.AddHours(2)) },
|
||||||
|
testFieldDateOnlyNullable = DateOnly.FromDateTime(DateTime.Now.AddDays(-1)),
|
||||||
|
|
||||||
|
testFieldTimeSpan = TimeSpan.FromDays(1),
|
||||||
|
testFieldTimeSpanArray = new[] { TimeSpan.FromDays(1), TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(60) },
|
||||||
|
testFieldTimeSpanArrayNullable = new TimeSpan?[] { TimeSpan.FromDays(1), TimeSpan.FromSeconds(10), null, TimeSpan.FromSeconds(60) },
|
||||||
|
testFieldTimeSpanNullable = TimeSpan.FromSeconds(90),
|
||||||
|
testFieldTimeOnly = TimeOnly.FromTimeSpan(TimeSpan.FromHours(11)),
|
||||||
|
testFieldTimeOnlyArray = new[] { TimeOnly.FromTimeSpan(TimeSpan.FromHours(11)), TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(10)), TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(60)) },
|
||||||
|
testFieldTimeOnlyArrayNullable = new TimeOnly?[] { TimeOnly.FromTimeSpan(TimeSpan.FromHours(11)), TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(10)), null, TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(60)) },
|
||||||
|
testFieldTimeOnlyNullable = TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(90)),
|
||||||
|
};
|
||||||
|
|
||||||
|
var sqlPar = fsql.Insert(item2).ToSql();
|
||||||
|
var sqlText = fsql.Insert(item2).NoneParameter().ToSql();
|
||||||
|
var item3NP = fsql.Insert(item2).NoneParameter().ExecuteInserted();
|
||||||
|
|
||||||
|
var item3 = fsql.Insert(item2).ExecuteInserted().First();
|
||||||
|
var newitem2 = fsql.Select<test_DateOnlyTimeOnly01>().Where(a => a.Id == item3.Id).ToOne();
|
||||||
|
Assert.True(item2.testFieldDateTime.Subtract( newitem2.testFieldDateTime).TotalSeconds <= 0);
|
||||||
|
|
||||||
|
item3 = fsql.Insert(item2).NoneParameter().ExecuteInserted().First();
|
||||||
|
newitem2 = fsql.Select<test_DateOnlyTimeOnly01>().Where(a => a.Id == item3.Id).ToOne();
|
||||||
|
Assert.True(item3.testFieldDateTime.Subtract(newitem2.testFieldDateTime).TotalSeconds <= 0);
|
||||||
|
|
||||||
|
var items = fsql.Select<test_DateOnlyTimeOnly01>().ToList();
|
||||||
|
var itemstb = fsql.Select<test_DateOnlyTimeOnly01>().ToDataTable();
|
||||||
|
}
|
||||||
|
class test_DateOnlyTimeOnly01
|
||||||
|
{
|
||||||
|
[Column(IsIdentity = true, IsPrimary = true)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
public TimeSpan testFieldTimeSpan { get; set; }
|
||||||
|
public TimeOnly testFieldTimeOnly { get; set; }
|
||||||
|
|
||||||
|
[Column(ServerTime = DateTimeKind.Local)]
|
||||||
|
public DateTime testFieldDateTime { get; set; }
|
||||||
|
public DateOnly testFieldDateOnly { get; set; }
|
||||||
|
|
||||||
|
public TimeSpan? testFieldTimeSpanNullable { get; set; }
|
||||||
|
public TimeOnly? testFieldTimeOnlyNullable { get; set; }
|
||||||
|
|
||||||
|
[Column(ServerTime = DateTimeKind.Local)]
|
||||||
|
public DateTime? testFieldDateTimeNullable { get; set; }
|
||||||
|
public DateOnly? testFieldDateOnlyNullable { get; set; }
|
||||||
|
|
||||||
|
/* array */
|
||||||
|
public TimeSpan[] testFieldTimeSpanArray { get; set; }
|
||||||
|
public TimeOnly[] testFieldTimeOnlyArray { get; set; }
|
||||||
|
public DateTime[] testFieldDateTimeArray { get; set; }
|
||||||
|
public DateOnly[] testFieldDateOnlyArray { get; set; }
|
||||||
|
|
||||||
|
public TimeSpan?[] testFieldTimeSpanArrayNullable { get; set; }
|
||||||
|
public TimeOnly?[] testFieldTimeOnlyArrayNullable { get; set; }
|
||||||
|
public DateTime?[] testFieldDateTimeArrayNullable { get; set; }
|
||||||
|
public DateOnly?[] testFieldDateOnlyArrayNullable { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Test_0String()
|
public void Test_0String()
|
||||||
@ -310,6 +385,10 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
testFieldDateTimeArray = new[] { DateTime.Now, DateTime.Now.AddHours(2) },
|
testFieldDateTimeArray = new[] { DateTime.Now, DateTime.Now.AddHours(2) },
|
||||||
testFieldDateTimeArrayNullable = new DateTime?[] { DateTime.Now, null, DateTime.Now.AddHours(2) },
|
testFieldDateTimeArrayNullable = new DateTime?[] { DateTime.Now, null, DateTime.Now.AddHours(2) },
|
||||||
testFieldDateTimeNullable = DateTime.Now.AddDays(-1),
|
testFieldDateTimeNullable = DateTime.Now.AddDays(-1),
|
||||||
|
testFieldDateOnly = DateOnly.FromDateTime(DateTime.Now),
|
||||||
|
testFieldDateOnlyArray = new[] { DateOnly.FromDateTime(DateTime.Now), DateOnly.FromDateTime(DateTime.Now.AddHours(2)) },
|
||||||
|
testFieldDateOnlyArrayNullable = new DateOnly?[] { DateOnly.FromDateTime(DateTime.Now), null, DateOnly.FromDateTime(DateTime.Now.AddHours(2)) },
|
||||||
|
testFieldDateOnlyNullable = DateOnly.FromDateTime(DateTime.Now.AddDays(-1)),
|
||||||
testFieldDecimal = 999.99M,
|
testFieldDecimal = 999.99M,
|
||||||
testFieldDecimalArray = new[] { 999.91M, 999.92M, 999.93M },
|
testFieldDecimalArray = new[] { 999.91M, 999.92M, 999.93M },
|
||||||
testFieldDecimalArrayNullable = new decimal?[] { 998.11M, 998.12M, 998.13M },
|
testFieldDecimalArrayNullable = new decimal?[] { 998.11M, 998.12M, 998.13M },
|
||||||
@ -483,6 +562,10 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
testFieldTimeSpanArray = new[] { TimeSpan.FromDays(1), TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(60) },
|
testFieldTimeSpanArray = new[] { TimeSpan.FromDays(1), TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(60) },
|
||||||
testFieldTimeSpanArrayNullable = new TimeSpan?[] { TimeSpan.FromDays(1), TimeSpan.FromSeconds(10), null, TimeSpan.FromSeconds(60) },
|
testFieldTimeSpanArrayNullable = new TimeSpan?[] { TimeSpan.FromDays(1), TimeSpan.FromSeconds(10), null, TimeSpan.FromSeconds(60) },
|
||||||
testFieldTimeSpanNullable = TimeSpan.FromSeconds(90),
|
testFieldTimeSpanNullable = TimeSpan.FromSeconds(90),
|
||||||
|
testFieldTimeOnly = TimeOnly.FromTimeSpan(TimeSpan.FromHours(11)),
|
||||||
|
testFieldTimeOnlyArray = new[] { TimeOnly.FromTimeSpan(TimeSpan.FromHours(11)), TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(10)), TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(60)) },
|
||||||
|
testFieldTimeOnlyArrayNullable = new TimeOnly?[] { TimeOnly.FromTimeSpan(TimeSpan.FromHours(11)), TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(10)), null, TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(60)) },
|
||||||
|
testFieldTimeOnlyNullable = TimeOnly.FromTimeSpan(TimeSpan.FromSeconds(90)),
|
||||||
testFieldTsrange = new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(1)),
|
testFieldTsrange = new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(1)),
|
||||||
testFieldTsrangeArray = new[] { new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(1)), new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(2)) },
|
testFieldTsrangeArray = new[] { new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(1)), new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(2)) },
|
||||||
testFieldTsrangeArrayNullable = new NpgsqlRange<DateTime>?[] { new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(1)), null, new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(2)) },
|
testFieldTsrangeArrayNullable = new NpgsqlRange<DateTime>?[] { new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(1)), null, new NpgsqlRange<DateTime>(DateTime.Now, DateTime.Now.AddMonths(2)) },
|
||||||
@ -540,9 +623,11 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
public float testFieldFloat { get; set; }
|
public float testFieldFloat { get; set; }
|
||||||
public decimal testFieldDecimal { get; set; }
|
public decimal testFieldDecimal { get; set; }
|
||||||
public TimeSpan testFieldTimeSpan { get; set; }
|
public TimeSpan testFieldTimeSpan { get; set; }
|
||||||
|
public TimeOnly testFieldTimeOnly { get; set; }
|
||||||
|
|
||||||
[Column(ServerTime = DateTimeKind.Local)]
|
[Column(ServerTime = DateTimeKind.Local)]
|
||||||
public DateTime testFieldDateTime { get; set; }
|
public DateTime testFieldDateTime { get; set; }
|
||||||
|
public DateOnly testFieldDateOnly { get; set; }
|
||||||
|
|
||||||
public byte[] testFieldBytes { get; set; }
|
public byte[] testFieldBytes { get; set; }
|
||||||
public string testFieldString { get; set; }
|
public string testFieldString { get; set; }
|
||||||
@ -574,9 +659,11 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
public float? testFieldFloatNullable { get; set; }
|
public float? testFieldFloatNullable { get; set; }
|
||||||
public decimal? testFieldDecimalNullable { get; set; }
|
public decimal? testFieldDecimalNullable { get; set; }
|
||||||
public TimeSpan? testFieldTimeSpanNullable { get; set; }
|
public TimeSpan? testFieldTimeSpanNullable { get; set; }
|
||||||
|
public TimeOnly? testFieldTimeOnlyNullable { get; set; }
|
||||||
|
|
||||||
[Column(ServerTime = DateTimeKind.Local)]
|
[Column(ServerTime = DateTimeKind.Local)]
|
||||||
public DateTime? testFieldDateTimeNullable { get; set; }
|
public DateTime? testFieldDateTimeNullable { get; set; }
|
||||||
|
public DateOnly? testFieldDateOnlyNullable { get; set; }
|
||||||
|
|
||||||
public Guid? testFieldGuidNullable { get; set; }
|
public Guid? testFieldGuidNullable { get; set; }
|
||||||
public NpgsqlPoint? testFieldNpgsqlPointNullable { get; set; }
|
public NpgsqlPoint? testFieldNpgsqlPointNullable { get; set; }
|
||||||
@ -627,7 +714,9 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
public float[] testFieldFloatArray { get; set; }
|
public float[] testFieldFloatArray { get; set; }
|
||||||
public decimal[] testFieldDecimalArray { get; set; }
|
public decimal[] testFieldDecimalArray { get; set; }
|
||||||
public TimeSpan[] testFieldTimeSpanArray { get; set; }
|
public TimeSpan[] testFieldTimeSpanArray { get; set; }
|
||||||
|
public TimeOnly[] testFieldTimeOnlyArray { get; set; }
|
||||||
public DateTime[] testFieldDateTimeArray { get; set; }
|
public DateTime[] testFieldDateTimeArray { get; set; }
|
||||||
|
public DateOnly[] testFieldDateOnlyArray { get; set; }
|
||||||
public byte[][] testFieldBytesArray { get; set; }
|
public byte[][] testFieldBytesArray { get; set; }
|
||||||
public string[] testFieldStringArray { get; set; }
|
public string[] testFieldStringArray { get; set; }
|
||||||
public Guid[] testFieldGuidArray { get; set; }
|
public Guid[] testFieldGuidArray { get; set; }
|
||||||
@ -657,7 +746,9 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
public float?[] testFieldFloatArrayNullable { get; set; }
|
public float?[] testFieldFloatArrayNullable { get; set; }
|
||||||
public decimal?[] testFieldDecimalArrayNullable { get; set; }
|
public decimal?[] testFieldDecimalArrayNullable { get; set; }
|
||||||
public TimeSpan?[] testFieldTimeSpanArrayNullable { get; set; }
|
public TimeSpan?[] testFieldTimeSpanArrayNullable { get; set; }
|
||||||
|
public TimeOnly?[] testFieldTimeOnlyArrayNullable { get; set; }
|
||||||
public DateTime?[] testFieldDateTimeArrayNullable { get; set; }
|
public DateTime?[] testFieldDateTimeArrayNullable { get; set; }
|
||||||
|
public DateOnly?[] testFieldDateOnlyArrayNullable { get; set; }
|
||||||
public Guid?[] testFieldGuidArrayNullable { get; set; }
|
public Guid?[] testFieldGuidArrayNullable { get; set; }
|
||||||
public NpgsqlPoint?[] testFieldNpgsqlPointArrayNullable { get; set; }
|
public NpgsqlPoint?[] testFieldNpgsqlPointArrayNullable { get; set; }
|
||||||
public NpgsqlLine?[] testFieldNpgsqlLineArrayNullable { get; set; }
|
public NpgsqlLine?[] testFieldNpgsqlLineArrayNullable { get; set; }
|
||||||
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.PostgreSQLExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.pgsql.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.ShenTongExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.shentong.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,218 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using FreeSql.Tests.DataContext.SqlServer;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.SqlServerExpression
|
|
||||||
{
|
|
||||||
[Collection("SqlServerCollection")]
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
SqlServerFixture _sqlserverFixture;
|
|
||||||
|
|
||||||
public TimeSpanTest(SqlServerFixture sqlserverFixture)
|
|
||||||
{
|
|
||||||
_sqlserverFixture = sqlserverFixture;
|
|
||||||
}
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.sqlserver.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
using FreeSql.DataAnnotations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace FreeSql.Tests.SqliteExpression
|
|
||||||
{
|
|
||||||
public class TimeSpanTest
|
|
||||||
{
|
|
||||||
|
|
||||||
ISelect<Topic> select => g.sqlite.Select<Topic>();
|
|
||||||
|
|
||||||
[Table(Name = "tb_topic")]
|
|
||||||
class Topic
|
|
||||||
{
|
|
||||||
[Column(IsIdentity = true, IsPrimary = true)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int Clicks { get; set; }
|
|
||||||
public int TypeGuid { get; set; }
|
|
||||||
public TestTypeInfo Type { get; set; }
|
|
||||||
public string Title { get; set; }
|
|
||||||
public DateTime CreateTime { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeInfo
|
|
||||||
{
|
|
||||||
public int Guid { get; set; }
|
|
||||||
public int ParentId { get; set; }
|
|
||||||
public TestTypeParentInfo Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
class TestTypeParentInfo
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public List<TestTypeInfo> Types { get; set; }
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Zero()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MinValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) > -922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void MaxValue()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) < 922337203685477580)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Days()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 86400000000) = 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Hours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 3600000000) mod 24 > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Milliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000 mod 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Minutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 60000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Seconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) div 1000000 mod 60) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Ticks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) * 10) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 86400000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 3600000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 60000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TotalSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) / 1000000) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) + (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void Subtract()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) - (1 * 86400000000)) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void CompareTo()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void this_ToString()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') = 'ssss')
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Compare()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) - ((1 * 86400000000))) > 0)
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Equals()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromDays()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 86400000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromHours()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 3600000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMilliseconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromMinutes()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 60000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromSeconds()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 * 1000000)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_FromTicks()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE ((timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000) = (1 / 10)))
|
|
||||||
}
|
|
||||||
[Fact]
|
|
||||||
public void TimeSpan_Parse()
|
|
||||||
{
|
|
||||||
var data = new List<object>();
|
|
||||||
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
||||||
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5
|
|
||||||
//FROM `tb_topic` a
|
|
||||||
//WHERE (cast(date_format(date_add(cast('0001/1/1 0:00:00' as datetime), interval (timestampdiff(microsecond, date_format(a.`CreateTime`, '1970-1-1 %H:%i:%s.%f'), a.`CreateTime`) + 62135596800000000)) microsecond), '%Y-%m-%d %H:%i:%s.%f') as signed) > 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +1,5 @@
|
|||||||
using Npgsql;
|
using Npgsql;
|
||||||
|
using Npgsql.Internal;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
33
FreeSql.sln
33
FreeSql.sln
@ -127,6 +127,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Tests.Provider.Xugu
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Extensions.ZeroEntity", "Extensions\FreeSql.Extensions.ZeroEntity\FreeSql.Extensions.ZeroEntity.csproj", "{D9419896-BFB0-47C1-BEFD-A6C48394643B}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Extensions.ZeroEntity", "Extensions\FreeSql.Extensions.ZeroEntity\FreeSql.Extensions.ZeroEntity.csproj", "{D9419896-BFB0-47C1-BEFD-A6C48394643B}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.Duckdb", "Providers\FreeSql.Provider.Duckdb\FreeSql.Provider.Duckdb.csproj", "{4871434E-481D-4306-B6DD-73595C61A473}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Tests.Provider.Duckdb", "FreeSql.Tests\FreeSql.Tests.Provider.Duckdb\FreeSql.Tests.Provider.Duckdb.csproj", "{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -761,6 +765,30 @@ Global
|
|||||||
{D9419896-BFB0-47C1-BEFD-A6C48394643B}.Release|x64.Build.0 = Release|Any CPU
|
{D9419896-BFB0-47C1-BEFD-A6C48394643B}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{D9419896-BFB0-47C1-BEFD-A6C48394643B}.Release|x86.ActiveCfg = Release|Any CPU
|
{D9419896-BFB0-47C1-BEFD-A6C48394643B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{D9419896-BFB0-47C1-BEFD-A6C48394643B}.Release|x86.Build.0 = Release|Any CPU
|
{D9419896-BFB0-47C1-BEFD-A6C48394643B}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{DE79C012-15B1-40EC-AD19-CBD7D489DB8E}.Release|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@ -802,10 +830,11 @@ Global
|
|||||||
{71A6F937-D11B-4AE4-9933-BB6B4D925665} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
|
{71A6F937-D11B-4AE4-9933-BB6B4D925665} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
|
||||||
{8064870C-22EA-4A58-972D-DBD57D096D91} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
|
{8064870C-22EA-4A58-972D-DBD57D096D91} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
|
||||||
{D9419896-BFB0-47C1-BEFD-A6C48394643B} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
|
{D9419896-BFB0-47C1-BEFD-A6C48394643B} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
|
||||||
|
{4871434E-481D-4306-B6DD-73595C61A473} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {089687FD-5D25-40AB-BA8A-A10D1E137F98}
|
|
||||||
RESX_PrefixTranslations = True
|
|
||||||
RESX_NeutralResourcesLanguage = en-US
|
RESX_NeutralResourcesLanguage = en-US
|
||||||
|
RESX_PrefixTranslations = True
|
||||||
|
SolutionGuid = {089687FD-5D25-40AB-BA8A-A10D1E137F98}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
Loading…
x
Reference in New Issue
Block a user