标签: date

oracle如何修改默认日期格式

这里是 Oracle 的新手,我正在处理一些分配,但我注意到当我使用脚本创建表时,oracle 抛出以下错误:

ORA-01858: a non-numeric character was found where a numeric was expected
01858. 00000 -  "a non-numeric character was found where a numeric was expected"
*Cause:    The input data to be converted using a date format model was
       incorrect.  The input data did not contain a number where a number was
       required by the format model.
*Action:   Fix the input data or the date format model to make sure the
       elements match in number and type.  Then …
Run Code Online (Sandbox Code Playgroud)

oracle date-format errors date

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

获得当前年份减去 5 年的最佳方法

我实际上有下一个查询,我用它以这种格式“YYYYMM”获取当前年份减去 1 月份的 5 年。

select TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE,'YEAR'),12*5*-1),'YYYYMM') from dual;
Run Code Online (Sandbox Code Playgroud)

我想知道这种方式是否是最好的方式。

oracle oracle-11g-r2 oracle-11g date

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

MySQL中的Datediff()

在计算两个日期之间的差异作为天数时,通过使用 MySQL Datediff() 函数,我遇到了一些问题,下面给出了 SQL 代码。

select datediff((select curdate()),
(select Company.CreatedOn
from
dbname.company
inner join
dbname.user 
on
user.company_id = company.company_id
))
Run Code Online (Sandbox Code Playgroud)

我得到的结果如下,

Error Code: 1242 Subquery returns more than 1 row
Run Code Online (Sandbox Code Playgroud)

我确实理解错误,但我不能使用任何 id 指出如下,

select datediff
(
(select curdate()),
(select Company.CreatedOn
from
dbname.company
inner join
dbname.user
on
user.company_id = company.company_id
where
company.company_id = 17)
);
Run Code Online (Sandbox Code Playgroud)

当我运行这个查询时,我得到如下输出,

38
Run Code Online (Sandbox Code Playgroud)

我需要根据注册时间存在超过 365 天的公司来选择用户。

需要显示所有注册时间超过365天的公司,我在代码中没有提到这个条件,

我需要解决子查询结果,datediff 函数应该与所有公司 CreatedOn 值进行比较,结果只存在超过 365 天的公司。

任何帮助将不胜感激。

mysql functions date

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

连接日期和 varchar

我需要从mysql的表中选择存储在列transactionDate数据类型中的日期date和存储在列transactionTime数据类型中的时间。我的查询就像varchartransactionTable

select concat( CAST( transactionDate as char), transactionTime) as transaction  
from transactionTable 
where id = 123
Run Code Online (Sandbox Code Playgroud)

两列中都有值,但以上返回一个空值。如何连接datevarchar列?

mysql cast concat date

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

在sql中将日期平均值转换为日期时转换失败

我已经从日期中取平均日期并试图获得平均日期的结果,但它引发了如下错误: Conversion failed when converting date and/or time from character string.

sql查询执行为:

select 
CONVERT
(
    DATE,
    LEFT(
          convert(
                  varchar(10),
                  AVG(
                        convert(
                                 int, 
                                 convert(
                                           varchar(10), 
                                           OnMarkDate, 
                                           112
                                         )
                                 )
                       )
                  ),8
          )
)
from @tbl_XMLResult
Run Code Online (Sandbox Code Playgroud)

列值如下:

   '2001-10-11',
   '2001-10-03',
   '2001-09-24',
   '2000-05-31',
   '2001-10-15',
   '2008-01-01'
Run Code Online (Sandbox Code Playgroud)

数据类型为日期。

sql-server sql-server-2012 date

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

我可以为此值“19920000”转换日期格式吗?

我有一个价值19920000。这是日期格式yyyyMMdd。我想按表中的日期字段保存。您可能会看到它是无效数据,因为日和月值为零。我可以在 SQL Server 中将日期格式转换为这个值吗?可不可以?

如何仅在日期字段中保存年份?

我从excel表中获取数据。这些数据是客户的出生日期。有些人想隐藏出生日期的日期和月份。他们没有给出正确的日期格式。我的应用程序是从 excel 表中读取数据并显示在 datagridview 表上,然后保存到数据库。数据量大,至少一次读取约30000条以上记录。我无法为此数据字段分隔列,因为性能可能会下降。

我正在使用 SQL Server 2008。

.

sql-server-2008 sql-server date

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

我们如何获得两个日期时间之间的小时、分钟和秒差异?

table任务有列如下:

Task(TaskID, TaskName, CreatedDate)
Run Code Online (Sandbox Code Playgroud)

并希望根据日期时间差异执行代码块:

如果任务 CreatedDate 已过去 15 分钟 THEN

执行块#01

否则,如果任务 CreatedDate 还没有超过 15 分钟,那么

执行块#02

我测试了下面的查询,但它给出的结果为 61633440

SELECT DATEDIFF(MINUTE, CONVERT(VARCHAR(10), CreatedDate, 108), CURRENT_TIMESTAMP) AS MinuteDiff
Run Code Online (Sandbox Code Playgroud)

我们如何在 sql 中实现上述目标?

sql-server sql-server-2012 datetime date

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

从具有连续日期和相同列值的行中查找日期范围

之前有人问过一个类似的问题,但我一直无法将这些答案调整到我的问题中。

我想在连续日期中查找行,其中另一列具有相同的值,并将其作为单个日期范围返回。

我尝试使用OVERPARTITION BY以及 ROW_NUMBER() 来获得我需要的结果,但我对这些概念不够熟悉,无法找出正确的输出。

系统为 Microsoft SQL Server 2014。

鉴于:

CREATE TABLE EXCEPTIONS
(
  ID    NUMERIC(18) NOT NULL,
  DATE  DATE        NOT NULL,
  TYPE  VARCHAR(20) NOT NULL,
  VALUE VARCHAR(20),
);
Run Code Online (Sandbox Code Playgroud)

和数据:

INSERT INTO EXCEPTIONS VALUES 
(17482, '2016-08-24', 'PRESSURE_EXCEPTION', 'Over'),
(17482, '2016-08-25', 'PRESSURE_EXCEPTION', 'Over'), 
(17482, '2016-08-26', 'PRESSURE_EXCEPTION', 'Over'), 
(17482, '2016-09-04', 'PRESSURE_EXCEPTION', 'Over'), 
(17482, '2016-09-05', 'PRESSURE_EXCEPTION', 'Over'), 
(17482, '2016-09-16', 'PRESSURE_EXCEPTION', 'Under'), 
(17482, '2016-09-17', 'PRESSURE_EXCEPTION', 'Under'), 
(17482, '2016-09-23', 'PRESSURE_EXCEPTION', 'Under'), 
(17482, '2016-09-24', 'PRESSURE_EXCEPTION', 'Under'), 
(17482, '2016-09-25', 'PRESSURE_EXCEPTION', 'Under'), …
Run Code Online (Sandbox Code Playgroud)

sql-server partitioning date

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

在 mysql 中的日期范围之间生成日期

有没有办法在日期范围之间生成日期。在查看 SO 后,我发现有一种使用 CTE 的方法,另一种选择是使用从 0 到 9 的 Union All。是否有内置函数可用于在日期范围之间生成日期?

我们使用的是 MySQL 8.0。

mysql cte date

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

转换日期并按年份过滤

我有一个“yyyymmdd”格式的日期字段,我需要使用该字段按年份过滤查询。

例如,在我的表中有一个“发布日期”字段,格式为“20180401”,我需要将查询过滤为仅包含 2018 年的记录。

sql-server type-conversion cast date sql-server-2016

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