AdaskoTheBeAsT.Dapper.NodaTime.MySql
6.0.0
dotnet add package AdaskoTheBeAsT.Dapper.NodaTime.MySql --version 6.0.0
NuGet\Install-Package AdaskoTheBeAsT.Dapper.NodaTime.MySql -Version 6.0.0
<PackageReference Include="AdaskoTheBeAsT.Dapper.NodaTime.MySql" Version="6.0.0" />
<PackageVersion Include="AdaskoTheBeAsT.Dapper.NodaTime.MySql" Version="6.0.0" />
<PackageReference Include="AdaskoTheBeAsT.Dapper.NodaTime.MySql" />
paket add AdaskoTheBeAsT.Dapper.NodaTime.MySql --version 6.0.0
#r "nuget: AdaskoTheBeAsT.Dapper.NodaTime.MySql, 6.0.0"
#:package AdaskoTheBeAsT.Dapper.NodaTime.MySql@6.0.0
#addin nuget:?package=AdaskoTheBeAsT.Dapper.NodaTime.MySql&version=6.0.0
#tool nuget:?package=AdaskoTheBeAsT.Dapper.NodaTime.MySql&version=6.0.0
AdaskoTheBeAsT.Dapper.NodaTime.MySql
MySQL / MariaDB dialect for AdaskoTheBeAsT.Dapper.NodaTime.
It registers the NodaTime type handlers and shapes every parameter with the matching MySqlDbType in addition
to DbType.
Provider client: MySqlConnector.
Installation
dotnet add package AdaskoTheBeAsT.Dapper.NodaTime.MySql
Usage
using AdaskoTheBeAsT.Dapper.NodaTime.MySql;
using NodaTime;
MySqlDapperNodaTimeSetup.Register(DateTimeZoneProviders.Tzdb);
Call it once during startup. The dialect is public as MySqlNodaTimeConfiguration if you want to pass it to
DapperNodaTimeSetup.Register yourself.
Parameter mapping
| NodaTime type | Value written | DbType |
MySqlDbType |
Recommended column |
|---|---|---|---|---|
Instant |
DateTime (UTC) |
DateTime2 |
DateTime |
DATETIME(6) |
LocalDate |
DateTime at midnight |
Date |
Date |
DATE |
LocalDateTime |
DateTime (unspecified) |
DateTime2 |
DateTime |
DATETIME(6) |
LocalTime |
TimeSpan since midnight |
Time |
Time |
TIME(6) |
OffsetDateTime |
DateTime (UTC part of the offset value) |
DateTime2 |
DateTime |
DATETIME(6) |
Offset |
int seconds |
Int32 |
Int32 |
INT |
Duration |
long nanoseconds |
Int64 |
Int64 |
BIGINT |
Period |
ISO8601 roundtrip string | AnsiString |
VarChar |
VARCHAR(176) |
CalendarSystem |
calendar id | AnsiString |
VarChar |
VARCHAR(50) |
DateTimeZone |
time zone id | AnsiString |
VarChar |
VARCHAR(50) |
Use the (6) fractional-second precision shown above; plain DATETIME / TIME truncate to whole seconds and
will break sub-second round-trips.
Offset handling
MySQL has no offset-preserving column type, so OffsetDateTime is normalized to UTC when written and comes
back with offset zero. Persist the offset separately when it matters:
public sealed class Reminder
{
public LocalDateTime LocalDateTime { get; set; }
public Offset Offset { get; set; }
public OffsetDateTime ToOffsetDateTime() => new(LocalDateTime, Offset);
}
Recommended schema
CREATE TABLE Events (
Id BIGINT PRIMARY KEY,
CreatedAt DATETIME(6) NOT NULL, -- Instant (UTC)
ScheduledAt DATETIME(6) NOT NULL, -- LocalDateTime
EventDate DATE NOT NULL, -- LocalDate
StartTime TIME(6) NOT NULL, -- LocalTime
StartsAtUtc DATETIME(6) NULL, -- OffsetDateTime (UTC normalized)
UtcOffsetSeconds INT NULL, -- Offset
RunTimeNanoseconds BIGINT NULL, -- Duration
Recurrence VARCHAR(176) NULL, -- Period
Calendar VARCHAR(50) NULL, -- CalendarSystem
TimeZone VARCHAR(50) NULL); -- DateTimeZone
Example
using Dapper;
using MySqlConnector;
using NodaTime;
using var connection = new MySqlConnection(connectionString);
await connection.ExecuteAsync(
"INSERT INTO Events (Id, CreatedAt, StartTime) VALUES (@Id, @CreatedAt, @StartTime)",
new
{
Id = 1L,
CreatedAt = SystemClock.Instance.GetCurrentInstant(),
StartTime = new LocalTime(10, 0),
});
Target frameworks
net10.0, net9.0, net8.0, net481, net48, net472, net471, net47, net462.
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Framework | net462 is compatible. net463 was computed. net47 is compatible. net471 is compatible. net472 is compatible. net48 is compatible. net481 is compatible. |
-
.NETFramework 4.6.2
- AdaskoTheBeAsT.Dapper.NodaTime (>= 6.0.0)
- MySqlConnector (>= 2.6.1 && < 3.0.0)
-
.NETFramework 4.7
- AdaskoTheBeAsT.Dapper.NodaTime (>= 6.0.0)
- MySqlConnector (>= 2.6.1 && < 3.0.0)
-
.NETFramework 4.7.1
- AdaskoTheBeAsT.Dapper.NodaTime (>= 6.0.0)
- MySqlConnector (>= 2.6.1 && < 3.0.0)
-
.NETFramework 4.7.2
- AdaskoTheBeAsT.Dapper.NodaTime (>= 6.0.0)
- MySqlConnector (>= 2.6.1 && < 3.0.0)
-
.NETFramework 4.8
- AdaskoTheBeAsT.Dapper.NodaTime (>= 6.0.0)
- MySqlConnector (>= 2.6.1 && < 3.0.0)
-
.NETFramework 4.8.1
- AdaskoTheBeAsT.Dapper.NodaTime (>= 6.0.0)
- MySqlConnector (>= 2.6.1 && < 3.0.0)
-
net10.0
- AdaskoTheBeAsT.Dapper.NodaTime (>= 6.0.0)
- MySqlConnector (>= 2.6.1 && < 3.0.0)
-
net8.0
- AdaskoTheBeAsT.Dapper.NodaTime (>= 6.0.0)
- MySqlConnector (>= 2.6.1 && < 3.0.0)
-
net9.0
- AdaskoTheBeAsT.Dapper.NodaTime (>= 6.0.0)
- MySqlConnector (>= 2.6.1 && < 3.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 6.0.0 | 34 | 7/29/2026 |