【问题标题】:create time stamp for datainsert method为 datainsert 方法创建时间戳
【发布时间】:2014-02-27 01:46:02
【问题描述】:

我有一个元胞数组。其中一列充满日期,当前格式为'yyyy-mm-dd'。我使用datainsert 方法收到一条错误消息

“无法在第 1 行第 3 列中插入元素,2014-02-07。时间戳格式必须为 yyyy-mm-dd hh:mm:ss[.fffffffff]”

日期已采用 yyyy-mm-dd 格式。当我尝试将它们转换为上述格式时,下面的行不起作用?错误信息是"Unrecognized month format. Format string: yyyy-mm-dd hh:mm:ss."

export_full(:,3) = cellstr(datestr(export_full(:,3), 'yyyy-mm-dd hh:mm:ss'))';

【问题讨论】:

    标签: sql matlab


    【解决方案1】:

    由于m 可以是monthminute,您应该在格式字符串中使用mm 表示月份,使用MM 表示分钟。 Matlab 将接受所有小写的日期和所有大写的时间(例如 HH:MM:SS)。

    这是来自datainsert 帮助的相关内容:

    如果 data 是包含 MATLAB 日期、时间或时间戳的元胞数组, 日期必须是格式为 yyyy-mm-dd 的日期字符串,时间必须是 HH:MM:SS 形式的时间字符串,时间戳必须是 格式为 yyyy-mm-dd HH:MM:SS.FFF。 null 条目必须是空字符串 并且元胞数组中的任何 NaN 都必须转换为空字符串 在调用 datainsert 之前。

    因此,如果您的日期字符串已经是 yyyy-mm-dd,则应该接受它们 - 您可能需要检查是否有任何杂散的 NaN 值。

    【讨论】:

    • 我刚刚运行 xSum = sum(isnan(cell2mat(export_full(3)))) xSum = 0 所以我可以看到我的数据中没有 NAN。我已经使用 HH:MM:SS 而不是 hh:mm:ss 正确转换了我的日期字符串
    • export_full(3) 还是 export_full(:,3)? “第1行第3列”的实际内容是什么? (假设这是您的单元格数组中使其窒息的位置)
    • 新的错误信息是 Error using database/datainsert (line 132) Unable to complete insert operation。传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。参数 12 (""):提供的值不是浮点数据类型的有效实例。检查源数据中的无效值。无效值的一个示例是小数位数大于精度的数值类型数据。
    • 第 1 行第 3 列的内容是 2014-02-07 00:00:00,我觉得还可以
    • 新的错误听起来像是在 SQL 端,可能是由输入数据中的某些东西引起的(例如,应该有数字的地方是空字符串值)。在这一点上,我唯一能建议的就是仔细检查 MATLAB 中的元胞数组,看看是否存在任何意外值。
    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2017-09-28
    • 1970-01-01
    • 2022-07-02
    相关资源
    最近更新 更多