标签: datetime2

有没有理由不使用DateTime2?

我错过了不使用新的DateTime2数据类型的理由吗?

例如,迁移到另一个数据库系统或将其与其他技术集成时是否会导致问题?

datetime2 sql-server-2008

4
推荐指数
1
解决办法
960
查看次数

使用SqlDataReader的DateTime2到C#DateTime

我意识到这可能是一个骗局,但我花了几个小时寻找答案,似乎无法找到答案.

我目前正在创建一个检索Concert数据的Web API.

我有一个SQL Server表,它包含一个开始和结束日期,两者都作为一种datetime2类型.我已经以这种格式插入了日期,它们在查看数据库时不会出现任何问题:

2015-10-08T20:00:00.0000000+01:00
Run Code Online (Sandbox Code Playgroud)

我的模特:

public class Concert
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int LocationId { get; set; }

    [Column(TypeName = "DateTime2")]
    public DateTime Start { get; set; }

    [Column(TypeName = "DateTime2")]
    public DateTime End { get; set; }

    public string Description { get; set; }
    public string Url { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的类中的方法会调出我的数据库数据:

    public List<Concert> getAll() 
    {
        List<Concert> concerts = new List<Concert>();

        SqlConnection …
Run Code Online (Sandbox Code Playgroud)

c# sql-server datetime sqldatareader datetime2

4
推荐指数
1
解决办法
4413
查看次数

比较datetime2时,SQL忽略纳秒

我有2个表,datetime2每个表都有一个字段.其中一个表也存储了纳秒,而另一个表只存储了几毫秒(没有办法改变这些数据).现在我想比较2个表并检查datetime2值是否匹配,但我必须忽略这个纳秒.

样本数据:

Table1                         Table2

2018-01-24 10:51:23.9976180    2018-01-24 10:51:23.9970000
2018-01-24 10:51:23.9976180    2018-01-24 10:51:23.9970000
2018-01-24 11:08:23.2578500    2018-01-24 11:08:23.2570000
Run Code Online (Sandbox Code Playgroud)

我的查询目前看起来像这样:

select t1.* from Table1 t1, Table12 t2 where t1.tradeDateTime = t2.tradeDate
Run Code Online (Sandbox Code Playgroud)

你可以猜到,我没有得到这些例子的任何结果,因为纳秒不同.

所以我的问题是,如何忽略where-clause中的纳秒?

编辑:

我知道我应该使用正确的JOINs.这个查询只是为了测试我在查询中是否犯了错误JOIN

sql sql-server datetime2

4
推荐指数
1
解决办法
206
查看次数

T-SQL:将datetime2的所有列的datatime2转换为datetime

我有一个充满datetime2列的数据库,而不是需要移动到SQL 2005数据库的数据库.所以,我需要将所有这些datetime2(7)列转换为datetime.

我该怎么做呢?

现在我已经设法为datetime2数据类型的所有列选择表名和列名,如下所示:

SELECT t.name, c.name, i.DATA_TYPE
FROM sys.tables AS t
JOIN sys.columns c ON t.object_id = c.object_id
JOIN information_schema.columns i ON i.TABLE_NAME = t.name AND i.COLUMN_NAME = c.name
WHERE i.data_type = 'datetime2'
Run Code Online (Sandbox Code Playgroud)

我只是不知道如何做其余的事情.

sql alert datetime datetime2

3
推荐指数
1
解决办法
5752
查看次数

带有DateTime2的SQL Server 2008存储过程

我对DateTime2SQL Server 2008中的存储过程和数据类型有一个小问题.

我使用DateTime2数据类型获得了几个存储过程,我想插入日期,0001.01.01 00:00:00但这不适用于VB.net,我找不到原因.

我用这个代码片段:

Dim sqlStatement As New SqlClient.SqlCommand
Dim sqlTransaction As SqlClient.SqlTransaction
sqlStatement.CommandType = CommandType.StoredProcedure
sqlStatement.CommandText = "SCHEMA.spInsertDate"
sqlStatement.Parameters.AddWithValue("@Date", "0001.01.01 00:00:00")
sqlStatement.ExecuteNonQuery()
Run Code Online (Sandbox Code Playgroud)

从我的程序调用存储过程(存储过程是一个简单的INSERT声明没有别的,并与实际日期工作正常).但是当我输入日期时0001.01.01 00:00:00,总是会出现错误,当我想执行存储过程时,我无法在'01 .01.1753'之前插入日期.

现在我已经知道DateTime2SQL Server 中的数据类型应该支持这一点.

所以我的问题是这可能是一个驱动程序问题,更新SQLClient会解决这个问题,或者这是一个普遍的问题,我终于可以停止搜索并只使用1753.01.01.

谢谢Lim

vb.net datetime2 sql-server-2008

2
推荐指数
1
解决办法
1982
查看次数

在 TSQL 插入中将日期字符串插入到 datetime2

我需要在 Microsoft Sql Server 的 QUEUE 表中插入一个日期字符串作为 DATETIME2。

数据库结构:

CREATE TABLE "QUEUE" (
    ID  INT PRIMARY KEY NOT NULL,
    TEAMID  VARCHAR(550) ,
    STATUS  VARCHAR(50) ,
    MSG VARCHAR(50) ,
    TIME    DATETIME2,
    ERROR   VARCHAR(10) ,
);

INSERT INTO QUEUE VALUES(2,'c33','ok','FoundID',CONVERT('Tue Sep 09 12:18:52 2014' AS DateTime2),'OK');
Run Code Online (Sandbox Code Playgroud)

值 'Tue Sep 09 12:18:52 2014' 应转换为 datetime2 格式,如 2014-09-09 12:18:52.000000 并应插入。

我试过 CAST 和 COVERT 但它失败了。

t-sql sql-server insert datetime2 datetime-format

2
推荐指数
1
解决办法
1万
查看次数

SQL Server smalldatetime与datetime2

我已经阅读了几篇有关在SQL Server中使用支持日期的数据类型的文章,但是我仍然不确定要使用哪种数据。

所有人都说使用新的强大datetime2类型,但是smalldatetime在内存方面(6字节对4字节)仍然更加方便

这是我的范围:

以这种方式定义的表:

Date: typeof(<Date type to choose>)
Value1: typeof(int)
Value2: typeof(int)
Value3: typeof(int)
Run Code Online (Sandbox Code Playgroud)

然后我有这些要求:

对于Date列,我需要精确到分钟。

在这个表中,我每天将存储多达一百万条如此大的大数据。

我的问题是:我是否必须使用smalldatetype每天为我节省2 mb 的旧机?

要么

我应该使用新的功能强大的datetime2数据类型吗?

谢谢

sql-server smalldatetime datetime2

2
推荐指数
1
解决办法
7735
查看次数

将 varchar "dd/mm/yyyy hh:mm:ss" 转换为 datetime2

我有一列 varchar(50) 格式的日期,写为“dd/mm/yyyy”,我需要将其转换为 datetime2 格式,但是当它运行时,它假定格式为“mm/dd/yyyy”并相应地进行转换,当日期字段超过 12 时抛出错误。如何让它以正确的方式提取数据?

例如

03/04/2017 00:00:00
03/04/2017 00:00:00
15/06/2017 00:00:00
15/06/2017 00:00:00
17/05/2017 00:00:00
Run Code Online (Sandbox Code Playgroud)

最后 3 次投掷失误。

当前命令:

select case when try_convert(datetime2,[Date]) is not null
    then cast([Date]as datetime2)
    else null
    end, [Date]
from [Source1]
Run Code Online (Sandbox Code Playgroud)

结果:

2017-03-04 00:00:00.0000000  03/04/2017 00:00:00
2017-03-04 00:00:00.0000000  03/04/2017 00:00:00
NULL                         15/06/2017 00:00:00
NULL                         15/06/2017 00:00:00
NULL                         17/05/2017 00:00:00
Run Code Online (Sandbox Code Playgroud)

sql sql-server date datetime2

2
推荐指数
1
解决办法
1507
查看次数

SQL Server 2005是否支持datetime2

我似乎无法在官方文档中找到SQL Server 2005是否支持datetime2数据类型?

sql-server-2005 datetime2

1
推荐指数
1
解决办法
6319
查看次数

datetime2 的默认值

datetime2 的默认值是多少?

编辑:抱歉,也许我解释错了,我尝试插入 getDate() 并且它保存了我这个值。

我需要知道我的 ssms 的该字段(红色字段)的值是多少

例子

sql sql-server ssms datetime2

0
推荐指数
1
解决办法
2万
查看次数