标签: datetime2

DateTime2与SQL Server中的DateTime

哪一个:

是在SQL Server 2008+中存储日期和时间推荐方法吗?

我知道精度(和存储空间可能)的差异,但暂时忽略这些,是否有关于何时使用什么的最佳实践文档,或者我们应该只使用它datetime2

sql t-sql sql-server datetime datetime2

726
推荐指数
11
解决办法
47万
查看次数

使用SQL Server 2008和SQL Server 2005以及日期时间

我已经针对2008数据库构建了一个实体框架模型.一切都适用于2008数据库.当我尝试更新2005数据库上的实体时,我收到此错误.

The version of SQL Server in use does not support datatype 'datetime2

我在构建数据库时没有使用任何2008功能.我在代码中找不到对datetime2的任何引用.并且,是的,该列在数据库中被定义为"datetime".

datetime entity-framework sql-server-2005 datetime2 sql-server-2008

117
推荐指数
3
解决办法
3万
查看次数

如何计算两个datetime2列(SQL Server)之间的间隔?

嗨,我正在尝试计算两列datetime2类型之间的差异.

但是SQL Server(2012)似乎不喜欢以下内容:

select cast ('2001-01-05 12:35:15.56786' as datetime2)
    - cast ('2001-01-01 23:45:21.12347' as datetime2);

Msg 8117, Level 16, State 1, Line 2
Operand data type datetime2 is invalid for subtract operator.
Run Code Online (Sandbox Code Playgroud)

现在,如果我将其转换为日期时间类型,它会起作用:

select cast (cast ('2001-01-05 12:35:15.56786' as datetime2) as datetime) 
    - cast (cast ('2001-01-01 23:45:21.12348' as datetime2) as datetime);

1900-01-04 12:49:54.443
Run Code Online (Sandbox Code Playgroud)

但是,当我将它转换为datetime时,我正在失去精度(请注意上面的3位小数精度).在这种情况下,我实际上需要全部5个小数点.有没有办法获得两个datetime2列之间的间隔,仍然保持5个小数点的精度?谢谢.

sql-server datetime2 intervals

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

DateTime2之后的数字是否为纳秒目的?

我已经阅读过该文档但我还没有完全理解默认精度是datetime2(7)是7表示纳秒的精度?

datetime2 sql-server-2008

8
推荐指数
2
解决办法
3676
查看次数

SQL Server 2008:从datetime2获取日期部分

我一直在使用这个非常方便的方法从datetime值中提取日期部分:

select dateadd(day, datediff(day, 0, @inDate), 0)
Run Code Online (Sandbox Code Playgroud)

这基本上将日期的时间部分清零.它很快,更重要的是它是确定性的 - 您可以在持久计算列,索引视图等中使用此表达式.

然而,我正在努力想出一些适用于该datetime2类型的东西.问题是SQL Server没有权限从整数到datetime2类型的转换.

是否有一种等效的,确定性的方法来剥离时间部分datetime2

sql-server datetime2 sql-server-2008

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

如何使用Delphi 7 ADOQuery.ExecSQL更新SQL Server上的DateTime,保留毫秒数?

如何使用Delphi 7更新SQL Server 2012上的DateTime,保留毫秒数ADOQuery.ExecSQL

SQL Server似乎降低了秒的精度,所以我在SQL Server 2012 DateTime2[7]字段上没有毫秒或微秒.使用此ADO查询,MS Access不会丢弃毫秒.以下ADOQuery代码似乎适用于我关心的所有DataTypes,除了SQL Server DateTime.

我使用的连接字符串是: Provider=SQLNCLI11.1;Integrated Security=SSPI;User ID="";Initial File Name="";Server SPN="";Data Source=myPC\SQLSERVER2012EXP;Initial Catalog=MyDatabase

这是我的代码:

function ExecuteNonQry(Conn:TADOConnection;Sql:string;Params:Variant): Integer;
{ Execute a query that does not return a recordset.  Returns number of rows 
  affected. Params can be any unique name, they are all dealt with in order
  of appearance in the parameter array and in the sql string.
  E.g. SQL 
    'INSERT INTO customers (id,name,country) VALUES (:id,:name,:country)';
  E.g. calling code:
    sql …
Run Code Online (Sandbox Code Playgroud)

delphi ado datetime2

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

在POCO实体上保存DateTime.MinValue时出现SqlDateTime溢出错误

在使用DateTime属性保存POCO实体时,我遇到了一些问题.当DateTime属性具有DateTime.MinValue的值时,由于SqlDateTime.MinValue和DateTime.MinValue之间的差异,SaveChanges()失败.

那么该怎么办?

1)我应该在保存实体之前检查DateTime.MinValue吗?

2)我的日期时间POCO属性应该设计成这样的吗?

    private SqlDateTime _created;
    public virtual DateTime Created
    {
        get
        {
            return _created.Value;
        }
        set 
        {
            _created = value == DateTime.MinValue ? SqlDateTime.MinValue : value;
        }
    }
Run Code Online (Sandbox Code Playgroud)

/ PW

entity entity-framework poco datetime2

7
推荐指数
2
解决办法
3590
查看次数

为什么EF5代码在将可空的日期时间插入数据库时​​首先使用datetime2?

我将Cart对象保存到具有可为空的日期时间的数据库.这是我得到的错误:

将datetime2数据类型转换为日期时间数据类型会导致超出范围的值.

有很多stackoverflow帖子记录了此问题的修复程序.但是,当代码首先创建数据库时,它将创建字段作为DateTime(允许空值).但由于某种原因,代码首先尝试使用DateTime2字段插入.

我想知道为什么EF以单向方式创建字段,但是为同一字段使用不同类型插入.

这是域对象:

using System;
using System.Collections.Generic;

namespace Core.Domain.Cart
{
    public partial class Cart : BaseEntity, ILocalizedEntity
    {
        private ICollection<Catalog> _catalogs;

        /// <summary>
        /// Gets or sets the name
        /// </summary>
        public virtual string Name { get; set; }

        /// <summary>
        /// Gets or sets the zone identifier
        /// </summary>
        public virtual int ZoneId { get; set; }

        /// <summary>
        /// Gets or sets the brand identifier
        /// </summary>
        public virtual int BrandId { get; set; }

        /// …
Run Code Online (Sandbox Code Playgroud)

datetime entity-framework datetime2 ef-code-first

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

如何为 MSSQL 日期配置 spring.data.convert.CustomConversion

最近我注意到我们的 spring-boot 服务正在记录来自org.springframework.data.convert.CustomConversions.

消息是这样的:

注册从 microsoft.sql.DateTimeOffset 类到 java.time.OffsetDateTime 类的转换器作为读取转换器,尽管它不会从存储支持的类型进行转换!您可能需要检查转换器实现中的注释设置。

相关的依赖关系pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.3</version>
</parent>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>9.4.1.jre16</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我当然可以通过将日志级别设置为此处提出的类似问题的error答案所建议的方式来抑制警告的记录,例如这样这样

实体 POJO 的日期/日期时间字段为java.sql.Timestampjava.util.Date,SQL Server 表具有类型为datedatetime2和 的列datetime。从 POJO 到 SQL 的映射是由org.springframework.data.repository.*/org.springframework.data.jdbc.repository.*类完成的。

我想知道如何正确配置,CustomConversions以便在可能的情况下完全避免警告。

sql-server datetime datetime2 spring-data

7
推荐指数
0
解决办法
1142
查看次数

如何比较 datetime2 和 datetime

我需要将一个数据库的属性 datetime2 与其他数据库的属性 datetime 进行比较,因为我找不到将 datetime 转换为 datetime2 的方法。

我测试一下这句话:

select CAST(FechaAlta AS datetime) from tutors
Run Code Online (Sandbox Code Playgroud)

但返回此错误消息:

将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围。

sql-server datetime datetime2 sql-server-2014

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