如何在Javascript中使用Google Spanner日期类型?

92 阅读1分钟

我们可以使用FORMAT_DATE函数来格式化包含日期表达式的字符串。它是高度使用的格式化日期的javascript函数之一。这个函数等同于其他关系型数据库中的to_char和to_date函数。在这篇文章中,我们将检查云Spanner的FORMAT_DATE函数。

format_date函数用于将表达式的日期转换成所需的格式。

Cloud Spanner FORMAT_DATE函数根据指定的日期格式字符串格式化包含日期的表达式。

语法

FORMAT_DATE(format_string, date_expr)

JAVA:

static void queryWithDate(DatabaseClient dbClient) {
  String exampleDate = "2019-01-01";
  Statement statement =
     Statement.newBuilder(
          "SELECT VenueId, VenueName, LastContactDate FROM Venues "
                  + "WHERE LastContactDate < @lastContactDate")
          .bind("lastContactDate")
          .to(exampleDate)
          .build();
  try (ResultSet resultSet = dbClient.singleUse().executeQuery(statement)) {
    while (resultSet.next()) {
      System.out.printf(
          "%d %s %s\n",
          resultSet.getLong("VenueId"),
          resultSet.getString("VenueName"),
          resultSet.getDate("LastContactDate"));
    }
  }
}

Node JS :

// Imports the Google Cloud client library.
const {Spanner} = require('@google-cloud/spanner');
/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const projectId = 'my-project-id';
// const instanceId = 'my-instance';
// const databaseId = 'my-database';
// Creates a client.
const spanner = new Spanner({
  projectId: projectId,
});
// Gets a reference to a Cloud Spanner instance and database.
const instance = spanner.instance(instanceId);
const database = instance.database(databaseId);
const fieldType = {
  type: 'date',
};
const exampleDate = '2019-01-01';
const query = {
  sql: `SELECT VenueId, VenueName, LastContactDate FROM Venues
          WHERE LastContactDate < @lastContactDate`,
  params: {
    lastContactDate: exampleDate,
  },
  types: {
    lastContactDate: fieldType,
  },
};
// Queries rows from the Venues table.
try {
  const [rows] = await database.run(query);
  rows.forEach(row => {
    const date = row[2]['value'];
    const json = row.toJSON();
    console.log(
      `VenueId: ${json.VenueId}, VenueName: ${json.VenueName},` +
        ` LastContactDate: ${JSON.stringify(date).substring(1, 11)}`
    );
  });
} catch (err) {
  console.error('ERROR:', err);
} finally {
  // Close the database when finished.
  database.close();
}

JAVASCRIPT:

rows.forEach(row => {
const date = row[2]['value'];
const json = row.toJSON();
console.log(
`VenueId: ${json.VenueId}, VenueName: ${json.VenueName},` +
` LastContactDate: ${JSON.stringify(date).substring(1, 11)}`
);});