Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择最大值将DATETIME转换为VARCHAR_Sql_Sql Server 2008_Datetime_Max_Varchar - Fatal编程技术网

Sql 选择最大值将DATETIME转换为VARCHAR

Sql 选择最大值将DATETIME转换为VARCHAR,sql,sql-server-2008,datetime,max,varchar,Sql,Sql Server 2008,Datetime,Max,Varchar,尝试编写生成记录的最大日期的内容,然后显示最大日期小于今天的所有记录,但SQL查询一直将DATETIME字段转换为VARCHAR,因此无法使用maxdate

尝试编写生成记录的最大日期的内容,然后显示最大日期小于今天的所有记录,但SQL查询一直将DATETIME字段转换为VARCHAR,因此无法使用maxdate 我尝试使用的代码是 “最大日期”=从del中选择最大del.original_站,其中del.obj_id=T2.obj_id,del.type=0,line.opt 1

T2.obj_id在my main FROM子句的左外部联接中定义

有什么想法吗

*更新w/full查询

SELECT
T1.doc AS "Document",
T1.owner AS "Own",
T1.last_up AS "Last Updated (EST)",

"Dollars"=ISNULL((SELECT CAST(SUM(fund_amt) AS DECIMAL(16,2)) FROM c_fund T3 WHERE T2.obj_id=T3.obj_id),0),
"Max Day"=(SELECT MAX(del.orig_stop) FROM del, line WHERE del.obj_id=T2.obj_id AND del.del_type=0 AND line.opt <> 1)

FROM
dsk T1 LEFT OUTER JOIN doc_object T2 ON T1.obj_id=T2.obj_id

WHERE
T1.icon_id=4
AND
T1.last_up >= '2018/01/21' AND T1.last_up <= '2018/01/24'

ORDER BY
"Last Updated (EST)" desc
我知道FROM子句中的逗号,将很快修复它们。

使用as分配别名:

select (SELECT MAX(del.original_stop)
        FROM del JOIN
             line 
             ON del.obj_id=T2.obj_id AND del.type=0 AND line.opt <> 1
       ) as max_day,
       . . .
另外,不要在FROM子句中使用逗号。始终使用正确的显式联接语法

如果原始停止是一个字符串,那么我的第一个建议是修复数据。您应该以本机格式存储日期和时间,而不是字符串


如果由于某种原因无法修复数据模型,则可以使用convert。您需要为函数添加可用的格式。

添加SQL标记时,会弹出一个大框,建议您也为正在使用的特定DBMS添加一个标记,因为它们之间的功能和语法不同。你为什么忽视这个建议?现在,我们必须检查一下您使用的是什么DBMS?它们的功能和支持各不相同,了解您使用的是哪一个是相关的。请为DBMS添加一个标签,这样我们就不会浪费您的时间或我们的回答,只是为了发现它在您的特定数据库上不起作用。胡说八道,在你这么做之前,你暂时得不到答案。试着使用转换函数,我刚刚用完整的查询更新了OP。我尝试了你的建议,但在将DB中的DATETIME字段转换为结果中的VARCHAR时仍然存在问题。