Java 复制到*CSV文件时数据不匹配

Java 复制到*CSV文件时数据不匹配,java,sql,database,postgresql,csv,Java,Sql,Database,Postgresql,Csv,运行sql查询将内容导出到CSV文件时,我注意到某些列没有正确显示。在我的强制转换中,时间戳没有正确显示在单元格中 代码如下: COPY (select hostname as "Host Name",devicetype as "Device Type",platform as "Model",Ipaddress as "IP Address",swversion as "Software Version",configuredTime as "Configured",activeTim

运行sql查询将内容导出到CSV文件时,我注意到某些列没有正确显示。在我的强制转换中,时间戳没有正确显示在单元格中

代码如下:

  COPY  (select hostname as "Host Name",devicetype as "Device Type",platform as "Model",Ipaddress as "IP Address",swversion as "Software Version",configuredTime as "Configured",activeTime as "Active",cluster as "Clusters",location as "Location",macaddress as "Mac Address",devicepool as "Device Pool" from (select getmodelinfo.ipaddress,max(getmodelinfo.hostname) as
            hostname, max(getmodelinfo.macaddress) as macaddress,
            max(getmodelinfo.devicetype) as devicetype,
            max(getmodelinfo.platform) as platform,
            max(getmodelinfo.swversion) as swversion, min(getmodelinfo.day_end_date) as configuredtime,
            max(getmodelinfo.active_end_date) as activetime,
            max(getmodelinfo.ucmclustername)
            as cluster, max(getmodelinfo.ucmlocation) as location,
            max(getmodelinfo.ucmdevicepool) as devicepool from (select
            pcwh_inv.uniquedeviceid,pcwh_inv.ipaddress,
            pcwh_inv.endpointmodel, pcwh_inv.hostname, pcwh_inv.devicetype, pcwh_inv.platform,
            pcwh_inv.macaddress, pcwh_inv.version as
            swversion,pcwh_inv.deployed_day_end_date as day_end_date,
            pcwh_inv.lastupdated_day_end_date as active_end_date,
            pcwh_inv.ucmclustername,pcwh_inv.ucmlocation,pcwh_inv.ucmdevicepool
            from pcwh_inventory_20160410 pcwh_inv,
            (select pcwh_inv.uniquedeviceid, max(pcwh_inv.lastupdated_day_end_date) as
            lasttime from pcwh_inventory_20160410 pcwh_inv where pcwh_inv.ipaddress
            notnull group by
            pcwh_inv.uniquedeviceid)gettime where pcwh_inv.endpointmodel = 'SX' and
            pcwh_inv.uniquedeviceid = gettime.uniquedeviceid and
            pcwh_inv.lastupdated_day_end_date = gettime.lasttime and  pcwh_inv.mgmtstatus not in ('Deleted')
                )getmodelinfo group by ipaddress) M) TO '/opt/emms/emsam/export/raj2.csv' DELIMITER ',' CSV HEADER 
请在下面的屏幕截图中找到我在不导出到csv的情况下运行查询时得到的结果、导出到csv时得到的结果(下图)、单击正确显示的特定行内容时得到的单元格内容的图像(最下面的图像)


在我看来,设置csv文件的格式存在问题。您能告诉我如何从查询级别执行此操作,以显示db列中的确切内容吗?

问题很简单,csv格式没有错误。实际上,您所做的数据项是错误的,您的数据项中不能有空格,这将导致错误问题 所以在第6列和第7列中,你可以看到在数据条目之间有一个空格,所以是由于哪个问题发生的。 要避免这种情况,只需为date添加一个新列。
它将解决所有问题,并将数据输入您的数据库。

我相信您的代码没有问题,但Excel将该列视为日期以外的内容,这种情况经常发生。可以通过选择所有受影响的单元格,单击鼠标右键,然后通过后续菜单将格式更改为文本来解决此问题

如果这个CSV将被另一个应用程序进一步操纵,我认为您不会有问题,因为数据看起来很好


如果出于任何原因,您需要它在Excel中动态正确显示,您可能需要研究以下内容

如果在记事本或类似工具中而不是Excel中打开CSV,你在那个专栏里看到了什么?我看到了整个内容,因为它应该被@williams读取。问题是我只是从数据库中按原样提取数据并显示,我无法控制数据库存储数据的方式。虽然我在单元格中单击时看不到确切的值,但我可以看到完整的数据,如下图3所示,但请记住数据输入中的一个事物u只能输入一个元素多个事物不能添加在同一列下