0

I am using PHP Client for InfluxDB - https://github.com/influxdata/influxdb-client-php

I am inserting points in my measurement along with current timestamp. For the timestamp, I am using as follows -

$time = new \DateTime();
$timezone=new\DateTimeZone('UTC');
$time->setTimestamp($unixTime)->setTimezone($timezone);

And then in then while inserting the point I am using -

->time($time->getTimestamp());

When I echo this variable, I get the correct timestamp, but when I am checkin values in the InfluxDB, all the dates are replaced by

1970-01-01T00:00:01.659452061Z

I even set the timezone to be UTC. I am not sure how to get the current timestamp into InfluxDB. Any help would be appreciated.

1 Answers1

0

Default precision is nanoseconds. You need to set it to seconds, ie.

$client = new InfluxDB2\Client([
    ...
    "precision" => InfluxDB2\Model\WritePrecision::S,
]);

https://github.com/influxdata/influxdb-client-php#time-precision

alespour
  • 397
  • 1
  • 5
  • Hi @alespour, I have set the precision to NS in client. When I try to change it to S, I start getting the following error - "Uncaught GuzzleHttp\Exception\ClientException: Client error: resulted in a `422 Unprocessable Entity` response: {"code":"unprocessable entity","message":"failure writing points to database: partial write: field type conflict" – Shubham khetan Aug 04 '22 at 06:57
  • @Shubhamkhetan That's strange. What if use NS precision and just convert the timestamp from seconds to nanos like `->time($time->getTimestamp() * 1000000000);`? – alespour Aug 04 '22 at 08:51