Skip to content

Commit a8b930d

Browse files
committed
Rollback Timestamp
1 parent f4d09e1 commit a8b930d

File tree

3 files changed

+31
-14
lines changed

3 files changed

+31
-14
lines changed

src/QueryResult.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,7 @@ protected function fillRows($rows)
194194
break;
195195

196196
case 'TIMESTAMP':
197-
$_row[$column['name']] = is_numeric($value) ?
198-
(DateTime::createFromFormat("U.u", $value/1000000 .".".str_pad($value%1000000,6,"0", STR_PAD_LEFT)))->format('Y-m-d H:i:s.u')
199-
: $value;
197+
$_row[$column['name']] = is_numeric($value) ? date('Y-m-d H:i:s', $value/1000000) : $value;
200198
break;
201199

202200
case 'DATETIME':

src/Types/TimestampType.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ class TimestampType extends DatetimeType
1111
protected $ydb_key_name = "uint64_value";
1212

1313
protected $ydb_type = "TIMESTAMP";
14-
15-
protected static $datetime_format = 'Y-m-d\TH:i:s.u\Z';
1614
/**
1715
* @inherit
1816
*/
@@ -27,8 +25,6 @@ protected function getYqlString()
2725
protected function getYdbValue()
2826
{
2927
$value = new DateTime($this->value);
30-
$x = ($value->format("U")."000000");
31-
$y = $value->format("u");
32-
return $x+$y;
28+
return $value->getTimestamp() * 1000000;
3329
}
3430
}

tests/CheckTypeTest.php

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,17 +149,40 @@ public function test(){
149149
"2023-06-14 17:12:15"
150150
]
151151
],
152-
// "Timestamp" => [
153-
// "class" => TimestampType::class,
154-
// "values" => [
155-
// new TimestampType(43578634985)
156-
// ]
157-
// ]
152+
"Timestamp" => [
153+
"class" => TimestampType::class,
154+
"values" => [
155+
"2023-06-14 17:12:15"
156+
]
157+
]
158158
];
159159

160160
$ydb = new Ydb($config);
161161
$table = $ydb->table();
162162
$session = $table->createSession();
163+
164+
165+
$query = "DECLARE \$v as Struct<x:Int32>; SELECT \$v as val;";
166+
$prepared = $session->prepare($query);
167+
$result = $prepared->execute([
168+
'v' => ["x"=>2],
169+
]);
170+
print_r($result);
171+
172+
$query = "DECLARE \$v as List<Int32>; SELECT \$v as val;";
173+
$prepared = $session->prepare($query);
174+
$result = $prepared->execute([
175+
'v' => [2],
176+
]);
177+
print_r($result);
178+
179+
// $query = "DECLARE \$v as Optional<Int32>; SELECT \$v as val;";
180+
// $prepared = $session->prepare($query);
181+
// $result = $prepared->execute([
182+
// 'v' => 2,
183+
// ]);
184+
// print_r($result);
185+
163186
foreach ($checkTypes as $type=>$data) {
164187
$query = "DECLARE \$v as $type; SELECT \$v as val;";
165188
$prepared = $session->prepare($query);

0 commit comments

Comments
 (0)