我正在通过我的c#Application将数据上传到BigQuery Cloud。我在BigQuery表中有专栏' ForDate'使用数据类型'日期'。
但是在c#数据类型中是' datetime'(作为c#中不支持的日期数据类型) 将数据上传到bigquery时出现以下错误: {无效日期:' 2017-01-02T00:00:00'领域:ForDate;价值:2017-01-02T00:00:00}
上传日期只有日期部分可以解决方法,忽略时间部分吗?
答案 0 :(得分:2)
这对我有用:
string currentdatetime = DateTime.Now.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'");
发件人:
答案 1 :(得分:0)
将所述列作为字符串导入,稍后将BigQuery解析为时间戳值。
SELECT TIMESTAMP('2017-01-02T00:00:00')
答案 2 :(得分:0)
BigQuery架构中的日期字段应标记为TimeStamp而不是DateTime字段。然后,您可以简单地用以下行插入行:
bqr.Add(attribute, date.ToUniversalTime());
答案 3 :(得分:0)
我知道问这个问题已经有一段时间了,但是对我来说,答案都不对。似乎BigQuery NuGet不喜欢指定类型(例如UTC)的日期时间,而ToUniversalTime()
会产生UTC类型。
对我有用的唯一技巧是创建一个没有(Unspecified
)类型的DateTime新实例。
var now = DateTime.UtcNow;
var dt = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, now.Millisecond);