Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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
C# 将Datetime转换为日期字段以传递到Google BigQuery_C#_Google Bigquery - Fatal编程技术网

C# 将Datetime转换为日期字段以传递到Google BigQuery

C# 将Datetime转换为日期字段以传递到Google BigQuery,c#,google-bigquery,C#,Google Bigquery,我正在通过我的c#应用程序将数据上传到BigQuery云。我在BigQuery表“ForDate”中有一个数据类型为“Date”的列 但在c中,数据类型是“datetime”(因为c中不支持日期数据类型) 我在将数据上载到bigquery时遇到以下错误: {无效日期:“2017-01-02T00:00:00”字段:ForDate;值:2017-01-02T00:00:00} 如果只上传带有日期部分的日期,而忽略其中的时间部分,那么解决方法是什么?将所述列作为字符串导入,稍后在BigQuery中解

我正在通过我的c#应用程序将数据上传到BigQuery云。我在BigQuery表“ForDate”中有一个数据类型为“Date”的列

但在c中,数据类型是“datetime”(因为c中不支持日期数据类型) 我在将数据上载到bigquery时遇到以下错误: {无效日期:“2017-01-02T00:00:00”字段:ForDate;值:2017-01-02T00:00:00}


如果只上传带有日期部分的日期,而忽略其中的时间部分,那么解决方法是什么?

将所述列作为字符串导入,稍后在BigQuery中解析为时间戳值

SELECT TIMESTAMP('2017-01-02T00:00:00')

这对我有用:

string currentdatetime = DateTime.Now.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'");
发件人:


BigQuery架构中的日期字段应标记为时间戳,而不是日期时间字段。然后,您只需插入具有以下内容的行:

bqr.Add(attribute, date.ToUniversalTime());

我知道有一段时间没有人问这个问题了,但对我来说,没有一个答案是正确的。BigQuery NuGet似乎不喜欢具有指定种类(例如UTC)的日期时间,
ToUniversalTime()
生成UTC种类

对我来说唯一有效的技巧就是创建一个新的DateTime实例,它没有(
未指定
)类型


这对我不起作用。我已经看过了:它有一个类似的解决方案,但是如果我尝试将date设置为:'DateTime.UtcNow',它既不能通过ToUniversalTime()也不能通过StringFormat工作,你有什么想法吗?
var now = DateTime.UtcNow;
var dt = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, now.Millisecond);