标签: sqldatetime

如何将LocalDate转换为SQL Date Java?

如何将LocalDate转换为java.sql.Date

尝试:

Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(new Date(date));
Run Code Online (Sandbox Code Playgroud)

这失败了(不会编译),我能找到的就是Joda时间的东西.

我正在使用Java 8

java converter sqldatetime java-8 java-time

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

.NET DateTime到SqlDateTime转换

在将.NET DateTime(默认为(DateTime)时)转换为SqlDateTime时,我应始终检查.NET日期是否在SqlDateTime.MinValue和SqlDateTime.MaxValue之间[或]是否有一种好方法可以执行此操作.

.net c# datetime sqldatetime

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

将java日期转换为Sql时间戳

我试图java.util.Date将其转换为java.sql.Timestamp后插入,我使用以下代码段:

java.util.Date utilDate = new java.util.Date();
java.sql.Timestamp sq = new java.sql.Timestamp(utilDate.getTime());
Run Code Online (Sandbox Code Playgroud)

但是,这是给我sq2014-04-04 13:30:17.533

有没有办法在没有毫秒的情况下获得输出?

java sql datetime sqldatetime

49
推荐指数
4
解决办法
16万
查看次数

检查值是否为日期并进行转换

我在用 20120101 = YYYYMMDD

我以某种格式接收数据.日期是数字(8,0)
例如(0,1,2,3,6)

存在具有20120101 = YYYYMMDD该日期字段中的值的行,因此不是日期.

我想检查它是否是日期并转换它,否则它可以为null.

现在以下代码可以正常工作,但我希望有更好的方法.

(CASE WHEN [invoice_date] LIKE '________' --There are 8 underscores
 THEN convert(datetime, cast([invoice_date] as char(8)))
 END) AS Invoice_Date
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

sql sql-server sqldatetime

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

T-SQL计算不同年份范围之间的持续时间(以月为单位)

我在SQL Server中有一个表,其中包含用于不同作业的用户的持续时间.我需要计算用户的总体验数.

Declare @temp table(Id int, FromDate DATETIME, ToDate DATETIME)
INSERT INTO @temp ( Id ,FromDate ,ToDate )
VALUES   ( 1 , '2003-1-08 06:55:56' , '2005-5-08 06:55:56'),
         ( 2 , '2000-10-08 06:55:56' , '2008-7-08 06:55:56'),
         ( 3 , '2013-6-08 06:55:56' , '2015-1-08 06:55:56'),
         ( 4 , '2006-4-08 06:55:56' , '2011-3-08 06:55:56' )
SELECT * FROM @temp 
Run Code Online (Sandbox Code Playgroud)

我想计算经验总数;

Id  FromDate    ToDate       Difference IN Months
===================================================
1   2003-01-08  2005-05-08    28
2   2000-10-08  2008-07-08    93
3   2013-06-08  2015-01-08    19
4   2006-04-08  2011-03-08    59 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sqldatetime sql-server-2012

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

MySQL按日期查询大inverval

我有2200万条记录的大桌子.我想执行下一个查询:

select auto_alerts from alerts_stat  where endDate > "2012-12-01"
Run Code Online (Sandbox Code Playgroud)

为了提高性能,我为endData字段添加了BTREE索引:

CREATE INDEX endDate_index USING BTREE ON alerts_stat(endDate)
Run Code Online (Sandbox Code Playgroud)

在我开始分析查询执行计划之后:

当我想在15到7天之前获取参数时:

explain select alerts_sp from alerts_stat 
where endDate between CURDATE() - 15 and CURDATE() - 7;
Run Code Online (Sandbox Code Playgroud)

我有下一个执行计划来处理2,762,088行.

'1', 'SIMPLE', 'browser_plugin_alerts_stat', 'range', 'endDate_index', 'endDate_index', '4', NULL, '2762088', 'Using where'
Run Code Online (Sandbox Code Playgroud)

当我将间隔增加一天时,我收到了:

explain select alerts_sp from alerts_stat 
where endDate between CURDATE() - 15 and CURDATE() - 6;
Run Code Online (Sandbox Code Playgroud)

EXPLAIN表示MySQL计划处理所有22,923,126行.

'1', 'SIMPLE', 'browser_plugin_alerts_stat', 'ALL', 'endDate_index', NULL, NULL, NULL, '22932390', 'Using where'
Run Code Online (Sandbox Code Playgroud)

例如,在WHERE过程22,925,642中没有任何条件地选择.

我可以改进执行计划吗?也许我在某个地方有错误,或者是正常的MySQL行为?

mysql performance database-performance sqldatetime database-indexes

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

实体框架和SqlDateTime溢出最佳实践

System.DateTime可以采用比SQL Server的DateTime更广泛的值.因此,有一类System.Data.SqlTypes.SqlDateTime模仿后者.

因此,我原本期望Entity Framework选择SqlDateTime,但事实并非如此.

所以我的问题是......

当您尝试将DateTime值保存到数据库时,确保DateTime值不会导致问题的最佳做法是什么?

有没有办法强迫EF使用SqlDateTime?

entity-framework sqldatetime

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

SQL Server - 将 TIME 值舍入到下一分钟

我发现了很多关于四舍五入“向下”时间值的帖子(例如/sf/answers/466692901/),但我有另一个问题:我想四舍五入到更高的分钟而不是更低的分钟,如何我可不可以做?

我的代码:

SELECT

 PA.ORE AS TOT_HOURS,  
 CAST(CAST(PA.ORA_INIZIO AS DATETIME) AS TIME) AS BEGIN_TIME,
 CAST(dateadd(minute, datediff(minute, 0, (CAST(PA.ORA_INIZIO AS DATETIME))), 0) AS TIME) AS BEGIN_TIME_ROUNDED


FROM PRG_ATTIVITA PA INNER JOIN PRG_TIPI_ATTIVITA PTA ON  PA.ID_TIPO_ATTIVITA = PTA.ID_TIPO_ATTIVITA
                     INNER JOIN PER_ANAGRAFICA PAN ON PA.ID_DIPENDENTE = PAN.ID_DIPENDENTE
WHERE PA.ID_PROGETTO = 1431 and pta.DESCR_TIPO_ATTIVITA like 'F-%remoto%' and ID_ATTIVITA = 41772 

ORDER BY  PA.DATA_ATTIVITA
Run Code Online (Sandbox Code Playgroud)

我的结果如下:

    TOT_HOURS   BEGIN_TIME          BEGIN_TIME_ROUNDED
    1.50        15:59:59.9970000    15:59:00.0000000
Run Code Online (Sandbox Code Playgroud)

我想要 BEGIN_TIME_ROUNDED = 16:00:00.0000000

注意: 1. 我必须转换我的数据 { CAST(PA.ORA_INIZIO AS DATETIME) } 因为在数据库中我有时间数据作为浮点值 …

sql t-sql rounding sql-server-2008 sqldatetime

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

如何将sql DATE映射到LocalDate

我想LocalDate在一个DATE列中存储一个并保持不变.这两个DATELocalDate是"本地"类型的定义.因此,时区的概念不应以任何方式干涉.

下面的代码是一个最小的示例,它创建DATE一个在内存数据库中包含列的表.maven工件com.h2database:h2:1.4.192必须位于类路径中.

首先,定义方法insertretrieve:

static void insert(DataSource ds, String date) throws SQLException {
  try (Connection conn = ds.getConnection();
       Statement stmt = conn.createStatement()) {
    stmt.execute("CREATE TABLE people (id BIGINT NOT NULL AUTO_INCREMENT"
      + ", born DATE NOT NULL, PRIMARY KEY (id) );");
    stmt.execute("INSERT INTO people (born) VALUES ('" + date + "')");
  }
}

static LocalDate retrieve(DataSource ds) throws SQLException {
  try (Connection conn …
Run Code Online (Sandbox Code Playgroud)

java timezone jdbc sqldatetime java-8

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

获取日期的最大可能时间 SQL Server

我想做的是在 SQL Server 中获取一个日期,并找到该日期的最后可能的小时、分钟、秒和毫秒。

所以如果日期是这样的:2021-02-16 13:08:58.620

我想返回:2021-02-16 23:59:59.999

我已经尝试过类似的方法,但它不起作用,我想我错过了转换时间并保留该日期的小时、分钟、秒和毫秒的东西

Select 
    DateAdd(MILLISECOND, -1, (Convert(datetime, DATEADD(day, 1, DateValue), 101))) as lastPossibleDate
From 
    Table1
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-date-functions sqldatetime

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