繁体   English   中英

OleDB查询中的格式化日期

[英]Format Date in OleDB Query

我正在尝试找到一种方法来正确格式化SELECT语句中的日期,该语句从旧的Visual Fox Pro数据库加载数据。 我需要这样做,以便我可以将其加载到CSV中,然后将其加载到MySQL中,它采用日期格式'yyyy-MM-dd'。

这是我目前的询问;

var dbfCmd = new OleDbCommand(@"SELECT ct_id, ct_cmpid, ct_empid, ct_pplid, ct_cntid, ct_pplnm, ct_date, ct_time, ct_type, ct_doneby, ct_desc FROM contacts", dbfCon);

我需要找到一种格式化ct_date列的方法。 到目前为止,我已经尝试了很多方法,包括使用FDATEFORMAT ,但到目前为止还没有任何工作。 我查看了OleDB支持的命令,但仍然没有遇到任何问题。

谁能告诉我格式化Date查询的正确方法,以便我可以导入MySQL?

不要格式化服务器上​​的日期。

作为日期列接收,然后在枚举查询时读取为DateTime值。 最后在编写文件时以指定的方式在客户端上格式化它。

虽然有人建议将C#中的数据转换为日期格式,但如果您真的想要从VFP OleDb查询中提取格式,则可以为日期列执行此操作

STUFF( STUFF( DTOS( ct_date ), 5, 0, "-"), 8, 0, "-" )

VFP函数DTOS会将日期(或日期时间)转换为字符串,并始终采用YYYYMMDD格式。 STUFF命令将插入连字符以正确设置为YYYY-MM-DD。

你可以简单地使用ToString(“yyyy-MM-dd”)但更好的是甚至不这样做。 您可以直接连接到MySQL并使用VFP命令将数据插入其中,并通过ExecScript调用它。 或者你可以直接从MySQL连接中的VFP导入(我不使用MySQL,但你可以用其他数据库,如MS SQL Server,postgreSQL等,所以我认为MySQL也有能力做到这一点)。 另一种替代方法是使用XML格式导入/导出,这比纯文本更可靠。 换句话说,您可以连接到MySQL和VFP,使用您的数据填充MySQL DataTable并提交更改。

IOW使用中间的文本文件将是我的最后一个建议。

PS:看看FileHelpers。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM