这里是 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) 我实际上有下一个查询,我用它以这种格式“YYYYMM”获取当前年份减去 1 月份的 5 年。
select TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE,'YEAR'),12*5*-1),'YYYYMM') from dual;
Run Code Online (Sandbox Code Playgroud)
我想知道这种方式是否是最好的方式。
在计算两个日期之间的差异作为天数时,通过使用 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的表中选择存储在列transactionDate数据类型中的日期date和存储在列transactionTime数据类型中的时间。我的查询就像varchartransactionTable
select concat( CAST( transactionDate as char), transactionTime) as transaction
from transactionTable
where id = 123
Run Code Online (Sandbox Code Playgroud)
两列中都有值,但以上返回一个空值。如何连接date和varchar列?
我已经从日期中取平均日期并试图获得平均日期的结果,但它引发了如下错误: 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)
数据类型为日期。
我有一个价值19920000。这是日期格式yyyyMMdd。我想按表中的日期字段保存。您可能会看到它是无效数据,因为日和月值为零。我可以在 SQL Server 中将日期格式转换为这个值吗?可不可以?
如何仅在日期字段中保存年份?
我从excel表中获取数据。这些数据是客户的出生日期。有些人想隐藏出生日期的日期和月份。他们没有给出正确的日期格式。我的应用程序是从 excel 表中读取数据并显示在 datagridview 表上,然后保存到数据库。数据量大,至少一次读取约30000条以上记录。我无法为此数据字段分隔列,因为性能可能会下降。
我正在使用 SQL Server 2008。
.
该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 中实现上述目标?
之前有人问过一个类似的问题,但我一直无法将这些答案调整到我的问题中。
我想在连续日期中查找行,其中另一列具有相同的值,并将其作为单个日期范围返回。
我尝试使用OVER和PARTITION 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) 有没有办法在日期范围之间生成日期。在查看 SO 后,我发现有一种使用 CTE 的方法,另一种选择是使用从 0 到 9 的 Union All。是否有内置函数可用于在日期范围之间生成日期?
我们使用的是 MySQL 8.0。
我有一个“yyyymmdd”格式的日期字段,我需要使用该字段按年份过滤查询。
例如,在我的表中有一个“发布日期”字段,格式为“20180401”,我需要将查询过滤为仅包含 2018 年的记录。
date ×10
sql-server ×5
mysql ×3
cast ×2
oracle ×2
concat ×1
cte ×1
date-format ×1
datetime ×1
errors ×1
functions ×1
oracle-11g ×1
partitioning ×1