Вы создаете экземпляр Клиента, но похоже, что вы не являетесь явным с создаваемым классом. Попробуйте следующее:
$client = new \GuzzleHttp\Client(['base_uri' => 'http://api.tvmaze.com/']);
$res = $client->request('GET', '/schedule?country=US&date=2014-12-01');
return $res;
Ниже приведено описание BigQuery Standard SQL.
#standardSQL
SELECT
DATE_FROM_UNIX_DATE(date_column_as_number_of_days_since_epoch) date_since_epoch,
IFNULL(SAFE_CAST(Delivered_Cost AS FLOAT64), 0.0) AS Delivered_Cost,
IFNULL(SAFE_CAST(Actual_Cost AS FLOAT64), 0.0) AS Actual_Cost
FROM `project.dataset.table`
. Вы можете проверить его, поиграть с ним, используя фиктивные данные, как показано ниже
#standardSQL
WITH `project.dataset.table` AS (
SELECT
43397 AS date_column_as_number_of_days_since_epoch,
'123' AS Delivered_Cost,
' - ' AS Actual_Cost
)
SELECT
DATE_FROM_UNIX_DATE(date_column_as_number_of_days_since_epoch) date_since_epoch,
IFNULL(SAFE_CAST(Delivered_Cost AS FLOAT64), 0.0) AS Delivered_Cost,
IFNULL(SAFE_CAST(Actual_Cost AS FLOAT64), 0.0) AS Actual_Cost
FROM `project.dataset.table`
, с результатом как
Row date_since_epoch Delivered_Cost Actual_Cost
1 2088-10-25 123.0 0.0
[117 ] Примечание: я предполагаю, что 43379
, который вы используете в качестве примера в своем вопросе, на самом деле является числом дней с начала эпохи - как это наиболее разумно с моей точки зрения - дайте нам знать, если это что-то еще, поэтому я буду скорректировать ответ соответственно
blockquote>
- Преобразовать мои столбцы даты в формат даты (в настоящее время это int64, с примером 43379)
Использовать функцию
PARSE_DATE()
:PARSE_DATE(Delivered_Date, '%Y-%m-%d')
В , следующем за документом , перечислены поддерживаемые форматы.
blockquote>
- Приведите мои столбцы 'Delivered_Cost' и 'Actual_Cost' в плавающее состояние (в настоящее время это тип строки)
Ваш синтаксис с
CASE()
в порядке ; Вы также можете использовать ярлыкFLOAT()
. Однако, если ваша строка не будет успешно отображена в число с плавающей точкой (как, например,-
), произойдет ошибка времени выполнения. Вы можете использоватьSAFE_CAST()
, чтобы игнорировать ошибку преобразования, но это также может привести к игнорированию соответствующих ошибок. Следовательно, вам лучше использоватьREPLACE()
.Вот ваш запрос:
SELECT PARSE_DATE(Delivered_Date, '%Y-%m-%d') AS Delivered_Date, FLOAT(REPLACE(Delivered_Cost, '-', '0')) AS Delivered_Cost, FLOAT(REPLACE(Actual_Cost, '-', '0')) AS Actual_Cost FROM MYTABLE FLOAT(Delivered_Cost)