BSON_VALUE_DATE function
The BSON_VALUE_DATE function is a built-in SQL function that converts values that correspond to a date in a BSON field to the DATE data type. The function returns integer string values.
Use the BSON_VALUE_DATE function to return or operate on date and time data in a field in a BSON column with SQL statements.
Syntax
BSON_VALUE_DATE function
BSON_VALUE_DATE(bson_column ,"field")Element | Description | Restrictions | Syntax |
---|---|---|---|
bson_column | Name of a BSON column | Must exist | Identifier |
field | A string that represents a field name to search for in the BSON column. Can be a multilevel identifier. | Quoted String, Column Expressions |
Usage
The field parameter can be a simple SQL identifier. The statements in the following example create a table with a BSON column and, insert three documents. The documents are explicitly cast to JSON and then implicitly cast to BSON.
CREATE DATABASE testdb WITH LOG;
CREATE TABLE IF NOT EXISTS bson_table(bson_col BSON);
INSERT INTO bson_table
VALUES('{id:1234,join_date:ISODate("2013-05-18T00:33:14.000Z")}'::JSON);
INSERT INTO bson_table
VALUES('{id:1235,join_date:ISODate("2012-09-12T00:13:44.000Z")}'::JSON);
INSERT INTO bson_table
VALUES('{id:1236,join_date:ISODate("2014-08-10T00:11:44.000Z")}'::JSON);
The following statement returns the value of the id field for all dates earlier than October 5, 2012:
SELECT bson_col.id::json FROM bson_table
WHERE bson_col.join_data::date >DATE("10/05/2012");
(expression){"id":1234}
(expression){"id":1236}
2 row(s) retrieved.
The following statements return the value of the join_date field:
SELECT bson_col.id::json, bson_value_date(bson_col, "join_date") FROM bson_table
WHERE bson_value_date(bson_col, "join_date")::date ='05/18/2013';
(expression) {"id":1234}
(expression) 2013-05-18 00:33:14.00000
1 row(s) retrieved.
The following statement creates an index on the join_date field in the BSON column:
CREATE INDEX idx_joindt ON bson_table(bson_value_date(bson_col,"join_date"))
USING bson;
This example shows simple field-name value pairs, but the field parameter in BSON_VALUE_DATE expressions for BSON columns with more complex structures can be specified as a multilevel identifier in dot notation.